diff options
Diffstat (limited to 'arch/m68k/kernel/signal.c')
-rw-r--r-- | arch/m68k/kernel/signal.c | 15 |
1 files changed, 3 insertions, 12 deletions
diff --git a/arch/m68k/kernel/signal.c b/arch/m68k/kernel/signal.c index 1747c7030a33..8186982fb320 100644 --- a/arch/m68k/kernel/signal.c +++ b/arch/m68k/kernel/signal.c | |||
@@ -230,18 +230,9 @@ static inline void push_cache(unsigned long vaddr) | |||
230 | asmlinkage int | 230 | asmlinkage int |
231 | sys_sigsuspend(int unused0, int unused1, old_sigset_t mask) | 231 | sys_sigsuspend(int unused0, int unused1, old_sigset_t mask) |
232 | { | 232 | { |
233 | mask &= _BLOCKABLE; | 233 | sigset_t blocked; |
234 | spin_lock_irq(¤t->sighand->siglock); | 234 | siginitset(&blocked, mask); |
235 | current->saved_sigmask = current->blocked; | 235 | return sigsuspend(&blocked); |
236 | siginitset(¤t->blocked, mask); | ||
237 | recalc_sigpending(); | ||
238 | spin_unlock_irq(¤t->sighand->siglock); | ||
239 | |||
240 | current->state = TASK_INTERRUPTIBLE; | ||
241 | schedule(); | ||
242 | set_restore_sigmask(); | ||
243 | |||
244 | return -ERESTARTNOHAND; | ||
245 | } | 236 | } |
246 | 237 | ||
247 | asmlinkage int | 238 | asmlinkage int |