diff options
Diffstat (limited to 'arch/mips/kernel/signal32.c')
-rw-r--r-- | arch/mips/kernel/signal32.c | 20 |
1 files changed, 2 insertions, 18 deletions
diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c index ac3b8d89aae5..b4fe2eacbd5d 100644 --- a/arch/mips/kernel/signal32.c +++ b/arch/mips/kernel/signal32.c | |||
@@ -288,15 +288,7 @@ asmlinkage int sys32_sigsuspend(nabi_no_regargs struct pt_regs regs) | |||
288 | uset = (compat_sigset_t __user *) regs.regs[4]; | 288 | uset = (compat_sigset_t __user *) regs.regs[4]; |
289 | if (get_sigset(&newset, uset)) | 289 | if (get_sigset(&newset, uset)) |
290 | return -EFAULT; | 290 | return -EFAULT; |
291 | sigdelsetmask(&newset, ~_BLOCKABLE); | 291 | return sigsuspend(&newset); |
292 | |||
293 | current->saved_sigmask = current->blocked; | ||
294 | set_current_blocked(&newset); | ||
295 | |||
296 | current->state = TASK_INTERRUPTIBLE; | ||
297 | schedule(); | ||
298 | set_thread_flag(TIF_RESTORE_SIGMASK); | ||
299 | return -ERESTARTNOHAND; | ||
300 | } | 292 | } |
301 | 293 | ||
302 | asmlinkage int sys32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) | 294 | asmlinkage int sys32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) |
@@ -313,15 +305,7 @@ asmlinkage int sys32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) | |||
313 | uset = (compat_sigset_t __user *) regs.regs[4]; | 305 | uset = (compat_sigset_t __user *) regs.regs[4]; |
314 | if (get_sigset(&newset, uset)) | 306 | if (get_sigset(&newset, uset)) |
315 | return -EFAULT; | 307 | return -EFAULT; |
316 | sigdelsetmask(&newset, ~_BLOCKABLE); | 308 | return sigsuspend(&newset); |
317 | |||
318 | current->saved_sigmask = current->blocked; | ||
319 | set_current_blocked(&newset); | ||
320 | |||
321 | current->state = TASK_INTERRUPTIBLE; | ||
322 | schedule(); | ||
323 | set_thread_flag(TIF_RESTORE_SIGMASK); | ||
324 | return -ERESTARTNOHAND; | ||
325 | } | 309 | } |
326 | 310 | ||
327 | SYSCALL_DEFINE3(32_sigaction, long, sig, const struct sigaction32 __user *, act, | 311 | SYSCALL_DEFINE3(32_sigaction, long, sig, const struct sigaction32 __user *, act, |