new helper: sigsuspend()
[cascardo/linux.git] / arch / sh / kernel / signal_32.c
index 5901fba..46c9f9b 100644 (file)
@@ -58,18 +58,8 @@ sys_sigsuspend(old_sigset_t mask,
               struct pt_regs __regs)
 {
        sigset_t blocked;
-
-       current->saved_sigmask = current->blocked;
-
-       mask &= _BLOCKABLE;
        siginitset(&blocked, mask);
-       set_current_blocked(&blocked);
-
-       current->state = TASK_INTERRUPTIBLE;
-       schedule();
-       set_restore_sigmask();
-
-       return -ERESTARTNOHAND;
+       return sigsuspend(&blocked);
 }
 
 asmlinkage int