mips: sigsuspend() is essentially the same as rt_sigsuspend() here
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 25 Dec 2012 21:25:18 +0000 (16:25 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 3 Feb 2013 23:32:59 +0000 (18:32 -0500)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/mips/kernel/signal.c
arch/mips/kernel/signal32.c

index f221722..95b019d 100644 (file)
@@ -247,15 +247,9 @@ void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs,
  */
 
 #ifdef CONFIG_TRAD_SIGNALS
-asmlinkage int sys_sigsuspend(nabi_no_regargs struct pt_regs regs)
+SYSCALL_DEFINE1(sigsuspend, sigset_t __user *, uset)
 {
-       sigset_t newset;
-       sigset_t __user *uset;
-
-       uset = (sigset_t __user *) regs.regs[4];
-       if (copy_from_user(&newset, uset, sizeof(sigset_t)))
-               return -EFAULT;
-       return sigsuspend(&newset);
+       return sys_rt_sigsuspend(uset, sizeof(sigset_t));
 }
 #endif
 
index b4f0e71..0b1f571 100644 (file)
@@ -273,15 +273,9 @@ static inline int get_sigset(sigset_t *kbuf, const compat_sigset_t __user *ubuf)
  * Atomically swap in the new signal mask, and wait for a signal.
  */
 
-asmlinkage int sys32_sigsuspend(nabi_no_regargs struct pt_regs regs)
+asmlinkage int sys32_sigsuspend(compat_sigset_t __user *uset)
 {
-       compat_sigset_t __user *uset;
-       sigset_t newset;
-
-       uset = (compat_sigset_t __user *) regs.regs[4];
-       if (get_sigset(&newset, uset))
-               return -EFAULT;
-       return sigsuspend(&newset);
+       return compat_sys_rt_sigsuspend(uset, sizeof(compat_sigset_t));
 }
 
 SYSCALL_DEFINE3(32_sigaction, long, sig, const struct sigaction32 __user *, act,