aboutsummaryrefslogtreecommitdiffstats
path: root/arch/mips/kernel/signal.c
diff options
context:
space:
mode:
Diffstat (limited to 'arch/mips/kernel/signal.c')
-rw-r--r--arch/mips/kernel/signal.c20
1 files changed, 2 insertions, 18 deletions
diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c
index d5a338a1739c..17f6ee30ad0d 100644
--- a/arch/mips/kernel/signal.c
+++ b/arch/mips/kernel/signal.c
@@ -255,15 +255,7 @@ asmlinkage int sys_sigsuspend(nabi_no_regargs struct pt_regs regs)
255 uset = (sigset_t __user *) regs.regs[4]; 255 uset = (sigset_t __user *) regs.regs[4];
256 if (copy_from_user(&newset, uset, sizeof(sigset_t))) 256 if (copy_from_user(&newset, uset, sizeof(sigset_t)))
257 return -EFAULT; 257 return -EFAULT;
258 sigdelsetmask(&newset, ~_BLOCKABLE); 258 return sigsuspend(&newset);
259
260 current->saved_sigmask = current->blocked;
261 set_current_blocked(&newset);
262
263 current->state = TASK_INTERRUPTIBLE;
264 schedule();
265 set_thread_flag(TIF_RESTORE_SIGMASK);
266 return -ERESTARTNOHAND;
267} 259}
268#endif 260#endif
269 261
@@ -281,15 +273,7 @@ asmlinkage int sys_rt_sigsuspend(nabi_no_regargs struct pt_regs regs)
281 unewset = (sigset_t __user *) regs.regs[4]; 273 unewset = (sigset_t __user *) regs.regs[4];
282 if (copy_from_user(&newset, unewset, sizeof(newset))) 274 if (copy_from_user(&newset, unewset, sizeof(newset)))
283 return -EFAULT; 275 return -EFAULT;
284 sigdelsetmask(&newset, ~_BLOCKABLE); 276 return sigsuspend(&newset);
285
286 current->saved_sigmask = current->blocked;
287 set_current_blocked(&newset);
288
289 current->state = TASK_INTERRUPTIBLE;
290 schedule();
291 set_thread_flag(TIF_RESTORE_SIGMASK);
292 return -ERESTARTNOHAND;
293} 277}
294 278
295#ifdef CONFIG_TRAD_SIGNALS 279#ifdef CONFIG_TRAD_SIGNALS