diff options
Diffstat (limited to 'arch/cris/arch-v10/kernel/signal.c')
-rw-r--r-- | arch/cris/arch-v10/kernel/signal.c | 16 |
1 files changed, 4 insertions, 12 deletions
diff --git a/arch/cris/arch-v10/kernel/signal.c b/arch/cris/arch-v10/kernel/signal.c index 289c584ba49..170f4970d59 100644 --- a/arch/cris/arch-v10/kernel/signal.c +++ b/arch/cris/arch-v10/kernel/signal.c | |||
@@ -48,19 +48,11 @@ void do_signal(int canrestart, struct pt_regs *regs); | |||
48 | * dummy arguments to be able to reach the regs argument. (Note that this | 48 | * dummy arguments to be able to reach the regs argument. (Note that this |
49 | * arrangement relies on old_sigset_t occupying one register.) | 49 | * arrangement relies on old_sigset_t occupying one register.) |
50 | */ | 50 | */ |
51 | int sys_sigsuspend(old_sigset_t mask, long r11, long r12, long r13, long mof, | 51 | int sys_sigsuspend(old_sigset_t mask) |
52 | long srp, struct pt_regs *regs) | ||
53 | { | 52 | { |
54 | mask &= _BLOCKABLE; | 53 | sigset_t blocked; |
55 | spin_lock_irq(¤t->sighand->siglock); | 54 | siginitset(&blocked, mask); |
56 | current->saved_sigmask = current->blocked; | 55 | return sigsuspend(&blocked); |
57 | siginitset(¤t->blocked, mask); | ||
58 | recalc_sigpending(); | ||
59 | spin_unlock_irq(¤t->sighand->siglock); | ||
60 | current->state = TASK_INTERRUPTIBLE; | ||
61 | schedule(); | ||
62 | set_thread_flag(TIF_RESTORE_SIGMASK); | ||
63 | return -ERESTARTNOHAND; | ||
64 | } | 56 | } |
65 | 57 | ||
66 | int sys_sigaction(int sig, const struct old_sigaction __user *act, | 58 | int sys_sigaction(int sig, const struct old_sigaction __user *act, |