s390: switch to generic compat rt_sigqueueinfo()
authorAl Viro <viro@zeniv.linux.org.uk>
Tue, 25 Dec 2012 20:45:24 +0000 (15:45 -0500)
committerAl Viro <viro@zeniv.linux.org.uk>
Sun, 3 Feb 2013 23:16:12 +0000 (18:16 -0500)
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
arch/s390/Kconfig
arch/s390/kernel/compat_linux.c
arch/s390/kernel/compat_linux.h
arch/s390/kernel/compat_wrapper.S

index f68a030411b542b2321c98187ffc92cd50fbbbb5..019364785d339ed83a3aeba29ba5c548367a3378 100644 (file)
@@ -141,6 +141,7 @@ config S390
        select MODULES_USE_ELF_RELA
        select CLONE_BACKWARDS2
        select GENERIC_SIGALTSTACK
+       select GENERIC_COMPAT_RT_SIGQUEUEINFO
        select GENERIC_COMPAT_RT_SIGPROCMASK
        select GENERIC_COMPAT_RT_SIGPENDING
 
index 877b18be0f4aa4e28b0e5e872f418f1790f25aa1..4b95fc652f7c0b8b99dfffc1ded5b38f014273c0 100644 (file)
@@ -368,21 +368,6 @@ asmlinkage long sys32_sched_rr_get_interval(compat_pid_t pid,
        return ret;
 }
 
-asmlinkage long
-sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *uinfo)
-{
-       siginfo_t info;
-       int ret;
-       mm_segment_t old_fs = get_fs();
-       
-       if (copy_siginfo_from_user32(&info, uinfo))
-               return -EFAULT;
-       set_fs (KERNEL_DS);
-       ret = sys_rt_sigqueueinfo(pid, sig, (siginfo_t __force __user *) &info);
-       set_fs (old_fs);
-       return ret;
-}
-
 asmlinkage long sys32_pread64(unsigned int fd, char __user *ubuf,
                                size_t count, u32 poshi, u32 poslo)
 {
index 385567661ced2d1f1d39f497a1a709fbbcd61316..f0280a198380a0e64e608dc8e3071ee3d06731af 100644 (file)
@@ -115,7 +115,6 @@ long sys32_truncate64(const char __user * path, unsigned long high,
 long sys32_ftruncate64(unsigned int fd, unsigned long high, unsigned long low);
 long sys32_sched_rr_get_interval(compat_pid_t pid,
                                 struct compat_timespec __user *interval);
-long sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *uinfo);
 long sys32_init_module(void __user *umod, unsigned long len,
                       const char __user *uargs);
 long sys32_delete_module(const char __user *name_user, unsigned int flags);
index 2b813b3edbd1d13e140a9f60bacbf55044ea8d6d..ee6c36b41ef52ed5391be680f7e847f0658fb7b8 100644 (file)
@@ -716,7 +716,7 @@ ENTRY(sys32_rt_sigqueueinfo_wrapper)
        lgfr    %r2,%r2                 # int
        lgfr    %r3,%r3                 # int
        llgtr   %r4,%r4                 # siginfo_emu31_t *
-       jg      sys32_rt_sigqueueinfo   # branch to system call
+       jg      compat_sys_rt_sigqueueinfo      # branch to system call
 
 ENTRY(compat_sys_rt_sigsuspend_wrapper)
        llgtr   %r2,%r2                 # compat_sigset_t *