parisc: switch to generic compat rt_sigpending()
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 25 Dec 2012 19:58:56 +0000 (14:58 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 3 Feb 2013 23:16:06 +0000 (18:16 -0500)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/parisc/Kconfig
arch/parisc/kernel/signal32.c
arch/parisc/kernel/syscall_table.S

index 0a8badaff8e378a37d008b4b416e47a28e140665..8755f8e482a4a91aaffb90a041506760f444376d 100644 (file)
@@ -25,6 +25,7 @@ config PARISC
        select CLONE_BACKWARDS
        select GENERIC_SIGALTSTACK
        select GENERIC_COMPAT_RT_SIGPROCMASK
+       select GENERIC_COMPAT_RT_SIGPENDING
 
        help
          The PA-RISC microprocessor is designed by Hewlett-Packard and used
index 49cb23462371e3a76ce4ebb1a4e9a6d10af10cb2..1d41848ed27d95ec6f45712f0f1d6062c1805ecd 100644 (file)
@@ -60,31 +60,6 @@ sigset_64to32(compat_sigset_t *s32, sigset_t *s64)
        s32->sig[1] = (s64->sig[0] >> 32) & 0xffffffffUL;
 }
 
-static int
-put_sigset32(compat_sigset_t __user *up, sigset_t *set, size_t sz)
-{
-       compat_sigset_t s;
-
-       if (sz != sizeof *set)
-               return -EINVAL;
-       sigset_64to32(&s, set);
-
-       return copy_to_user(up, &s, sizeof s);
-}
-
-int sys32_rt_sigpending(compat_sigset_t __user *uset, unsigned int sigsetsize)
-{
-       int ret;
-       sigset_t set;
-
-       KERNEL_SYSCALL(ret, sys_rt_sigpending, (sigset_t __user *)&set, sigsetsize);
-
-       if (!ret && put_sigset32(uset, &set, sigsetsize))
-               return -EFAULT;
-
-       return ret;
-}
-
 long
 sys32_rt_sigaction(int sig, const struct sigaction32 __user *act, struct sigaction32 __user *oact,
                  size_t sigsetsize)
index 3ea2fe29f7d52f9f90e2c8843173e989794232ab..3b083dd208cf030a74d8c41ad96ef7e4fe4810ed 100644 (file)
        ENTRY_SAME(rt_sigreturn_wrapper)
        ENTRY_DIFF(rt_sigaction)
        ENTRY_COMP(rt_sigprocmask)      /* 175 */
-       ENTRY_DIFF(rt_sigpending)
+       ENTRY_COMP(rt_sigpending)
        ENTRY_COMP(rt_sigtimedwait)
        /* even though the struct siginfo_t is different, it appears like
         * all the paths use values which should be same wide and narrow.