diff options
Diffstat (limited to 'arch/frv/kernel/signal.c')
-rw-r--r-- | arch/frv/kernel/signal.c | 14 |
1 files changed, 3 insertions, 11 deletions
diff --git a/arch/frv/kernel/signal.c b/arch/frv/kernel/signal.c index bab01298b58e..df957c7ba387 100644 --- a/arch/frv/kernel/signal.c +++ b/arch/frv/kernel/signal.c | |||
@@ -40,17 +40,9 @@ struct fdpic_func_descriptor { | |||
40 | */ | 40 | */ |
41 | asmlinkage int sys_sigsuspend(int history0, int history1, old_sigset_t mask) | 41 | asmlinkage int sys_sigsuspend(int history0, int history1, old_sigset_t mask) |
42 | { | 42 | { |
43 | mask &= _BLOCKABLE; | 43 | sigset_t blocked; |
44 | spin_lock_irq(¤t->sighand->siglock); | 44 | siginitset(&blocked, mask); |
45 | current->saved_sigmask = current->blocked; | 45 | return sigsuspend(&blocked); |
46 | siginitset(¤t->blocked, mask); | ||
47 | recalc_sigpending(); | ||
48 | spin_unlock_irq(¤t->sighand->siglock); | ||
49 | |||
50 | current->state = TASK_INTERRUPTIBLE; | ||
51 | schedule(); | ||
52 | set_thread_flag(TIF_RESTORE_SIGMASK); | ||
53 | return -ERESTARTNOHAND; | ||
54 | } | 46 | } |
55 | 47 | ||
56 | asmlinkage int sys_sigaction(int sig, | 48 | asmlinkage int sys_sigaction(int sig, |