arm64: switch to generic compat rt_sigprocmask()
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 25 Dec 2012 18:57:16 +0000 (13:57 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Thu, 14 Feb 2013 14:17:52 +0000 (09:17 -0500)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/arm64/Kconfig
arch/arm64/kernel/signal32.c

index d9c901d..4b99d63 100644 (file)
@@ -6,6 +6,7 @@ config ARM64
        select CLONE_BACKWARDS
        select COMMON_CLK
        select GENERIC_CLOCKEVENTS
+       select GENERIC_COMPAT_RT_SIGPROCMASK
        select GENERIC_HARDIRQS_NO_DEPRECATED
        select GENERIC_IOMAP
        select GENERIC_IRQ_PROBE
index 54920c5..dcc13bd 100644 (file)
@@ -693,39 +693,6 @@ int compat_setup_frame(int usig, struct k_sigaction *ka, sigset_t *set,
        return err;
 }
 
-/*
- * RT signals don't have generic compat wrappers.
- * See arch/powerpc/kernel/signal_32.c
- */
-asmlinkage int compat_sys_rt_sigprocmask(int how, compat_sigset_t __user *set,
-                                        compat_sigset_t __user *oset,
-                                        compat_size_t sigsetsize)
-{
-       sigset_t s;
-       sigset_t __user *up;
-       int ret;
-       mm_segment_t old_fs = get_fs();
-
-       if (set) {
-               if (get_sigset_t(&s, set))
-                       return -EFAULT;
-       }
-
-       set_fs(KERNEL_DS);
-       /* This is valid because of the set_fs() */
-       up = (sigset_t __user *) &s;
-       ret = sys_rt_sigprocmask(how, set ? up : NULL, oset ? up : NULL,
-                                sigsetsize);
-       set_fs(old_fs);
-       if (ret)
-               return ret;
-       if (oset) {
-               if (put_sigset_t(oset, &s))
-                       return -EFAULT;
-       }
-       return 0;
-}
-
 asmlinkage int compat_sys_rt_sigpending(compat_sigset_t __user *set,
                                        compat_size_t sigsetsize)
 {