aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mn10300/kernel/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mn10300/kernel/signal.c')
-rw-r--r--arch/mn10300/kernel/signal.c14
1 files changed, 3 insertions, 11 deletions
diff --git a/arch/mn10300/kernel/signal.c b/arch/mn10300/kernel/signal.c
index 690f4e9507d..50eb94a0582 100644
--- a/arch/mn10300/kernel/signal.c
+++ b/arch/mn10300/kernel/signal.c
@@ -38,17 +38,9 @@
38 */ 38 */
39asmlinkage long sys_sigsuspend(int history0, int history1, old_sigset_t mask) 39asmlinkage long sys_sigsuspend(int history0, int history1, old_sigset_t mask)
40{ 40{
41 mask &= _BLOCKABLE; 41 sigset_t blocked;
42 spin_lock_irq(&current->sighand->siglock); 42 siginitset(&blocked, mask);
43 current->saved_sigmask = current->blocked; 43 return sigsuspend(&blocked);
44 siginitset(&current->blocked, mask);
45 recalc_sigpending();
46 spin_unlock_irq(&current->sighand->siglock);
47
48 current->state = TASK_INTERRUPTIBLE;
49 schedule();
50 set_thread_flag(TIF_RESTORE_SIGMASK);
51 return -ERESTARTNOHAND;
52} 44}
53 45
54/* 46/*