new helper: sigsuspend()
[cascardo/linux.git] / arch / mips / kernel / signal_n32.c
index 86eb4b0..63ffac9 100644 (file)
@@ -91,15 +91,7 @@ asmlinkage int sysn32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs)
        if (copy_from_user(&uset, unewset, sizeof(uset)))
                return -EFAULT;
        sigset_from_compat(&newset, &uset);
-       sigdelsetmask(&newset, ~_BLOCKABLE);
-
-       current->saved_sigmask = current->blocked;
-       set_current_blocked(&newset);
-
-       current->state = TASK_INTERRUPTIBLE;
-       schedule();
-       set_thread_flag(TIF_RESTORE_SIGMASK);
-       return -ERESTARTNOHAND;
+       return sigsuspend(&newset);
 }
 
 asmlinkage void sysn32_rt_sigreturn(nabi_no_regargs struct pt_regs regs)