]> git.karo-electronics.de Git - karo-tx-linux.git/commitdiff
parisc: switch to generic compat rt_sigprocmask()
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 25 Dec 2012 18:51:31 +0000 (13:51 -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 9804a9e34979191c518f76c70bd4c94909186453..0a8badaff8e378a37d008b4b416e47a28e140665 100644 (file)
@@ -24,6 +24,7 @@ config PARISC
        select MODULES_USE_ELF_RELA
        select CLONE_BACKWARDS
        select GENERIC_SIGALTSTACK
+       select GENERIC_COMPAT_RT_SIGPROCMASK
 
        help
          The PA-RISC microprocessor is designed by Hewlett-Packard and used
index df79070c37150c0dd5b890eeb7692c239450fd43..49cb23462371e3a76ce4ebb1a4e9a6d10af10cb2 100644 (file)
@@ -72,41 +72,6 @@ put_sigset32(compat_sigset_t __user *up, sigset_t *set, size_t sz)
        return copy_to_user(up, &s, sizeof s);
 }
 
-static int
-get_sigset32(compat_sigset_t __user *up, sigset_t *set, size_t sz)
-{
-       compat_sigset_t s;
-       int r;
-
-       if (sz != sizeof *set)
-               return -EINVAL;
-
-       if ((r = copy_from_user(&s, up, sz)) == 0) {
-               sigset_32to64(set, &s);
-       }
-
-       return r;
-}
-
-int sys32_rt_sigprocmask(int how, compat_sigset_t __user *set, compat_sigset_t __user *oset,
-                                   unsigned int sigsetsize)
-{
-       sigset_t old_set, new_set;
-       int ret;
-
-       if (set && get_sigset32(set, &new_set, sigsetsize))
-               return -EFAULT;
-       
-       KERNEL_SYSCALL(ret, sys_rt_sigprocmask, how, set ? (sigset_t __user *)&new_set : NULL,
-                                oset ? (sigset_t __user *)&old_set : NULL, sigsetsize);
-
-       if (!ret && oset && put_sigset32(oset, &old_set, sigsetsize))
-               return -EFAULT;
-
-       return ret;
-}
-
-
 int sys32_rt_sigpending(compat_sigset_t __user *uset, unsigned int sigsetsize)
 {
        int ret;
index 46dd6efacaaa969350020b6517a5b12a6b38ea7b..3ea2fe29f7d52f9f90e2c8843173e989794232ab 100644 (file)
        /* signals need a careful review */
        ENTRY_SAME(rt_sigreturn_wrapper)
        ENTRY_DIFF(rt_sigaction)
-       ENTRY_DIFF(rt_sigprocmask)      /* 175 */
+       ENTRY_COMP(rt_sigprocmask)      /* 175 */
        ENTRY_DIFF(rt_sigpending)
        ENTRY_COMP(rt_sigtimedwait)
        /* even though the struct siginfo_t is different, it appears like