diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-12-25 15:45:24 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2013-02-03 18:16:12 -0500 |
commit | 07562be77d5b36aa961f722292a708bb663f8a73 (patch) | |
tree | 021e7b6b1220498890e1838150c81324d93dc1fd /arch | |
parent | bdcf03183cbf208923752bd26f6b9488c60ec1ca (diff) |
s390: switch to generic compat rt_sigqueueinfo()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/s390/Kconfig | 1 | ||||
-rw-r--r-- | arch/s390/kernel/compat_linux.c | 15 | ||||
-rw-r--r-- | arch/s390/kernel/compat_linux.h | 1 | ||||
-rw-r--r-- | arch/s390/kernel/compat_wrapper.S | 2 |
4 files changed, 2 insertions, 17 deletions
diff --git a/arch/s390/Kconfig b/arch/s390/Kconfig index f68a030411b5..019364785d33 100644 --- a/arch/s390/Kconfig +++ b/arch/s390/Kconfig | |||
@@ -141,6 +141,7 @@ config S390 | |||
141 | select MODULES_USE_ELF_RELA | 141 | select MODULES_USE_ELF_RELA |
142 | select CLONE_BACKWARDS2 | 142 | select CLONE_BACKWARDS2 |
143 | select GENERIC_SIGALTSTACK | 143 | select GENERIC_SIGALTSTACK |
144 | select GENERIC_COMPAT_RT_SIGQUEUEINFO | ||
144 | select GENERIC_COMPAT_RT_SIGPROCMASK | 145 | select GENERIC_COMPAT_RT_SIGPROCMASK |
145 | select GENERIC_COMPAT_RT_SIGPENDING | 146 | select GENERIC_COMPAT_RT_SIGPENDING |
146 | 147 | ||
diff --git a/arch/s390/kernel/compat_linux.c b/arch/s390/kernel/compat_linux.c index 877b18be0f4a..4b95fc652f7c 100644 --- a/arch/s390/kernel/compat_linux.c +++ b/arch/s390/kernel/compat_linux.c | |||
@@ -368,21 +368,6 @@ asmlinkage long sys32_sched_rr_get_interval(compat_pid_t pid, | |||
368 | return ret; | 368 | return ret; |
369 | } | 369 | } |
370 | 370 | ||
371 | asmlinkage long | ||
372 | sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *uinfo) | ||
373 | { | ||
374 | siginfo_t info; | ||
375 | int ret; | ||
376 | mm_segment_t old_fs = get_fs(); | ||
377 | |||
378 | if (copy_siginfo_from_user32(&info, uinfo)) | ||
379 | return -EFAULT; | ||
380 | set_fs (KERNEL_DS); | ||
381 | ret = sys_rt_sigqueueinfo(pid, sig, (siginfo_t __force __user *) &info); | ||
382 | set_fs (old_fs); | ||
383 | return ret; | ||
384 | } | ||
385 | |||
386 | asmlinkage long sys32_pread64(unsigned int fd, char __user *ubuf, | 371 | asmlinkage long sys32_pread64(unsigned int fd, char __user *ubuf, |
387 | size_t count, u32 poshi, u32 poslo) | 372 | size_t count, u32 poshi, u32 poslo) |
388 | { | 373 | { |
diff --git a/arch/s390/kernel/compat_linux.h b/arch/s390/kernel/compat_linux.h index 385567661ced..f0280a198380 100644 --- a/arch/s390/kernel/compat_linux.h +++ b/arch/s390/kernel/compat_linux.h | |||
@@ -115,7 +115,6 @@ long sys32_truncate64(const char __user * path, unsigned long high, | |||
115 | long sys32_ftruncate64(unsigned int fd, unsigned long high, unsigned long low); | 115 | long sys32_ftruncate64(unsigned int fd, unsigned long high, unsigned long low); |
116 | long sys32_sched_rr_get_interval(compat_pid_t pid, | 116 | long sys32_sched_rr_get_interval(compat_pid_t pid, |
117 | struct compat_timespec __user *interval); | 117 | struct compat_timespec __user *interval); |
118 | long sys32_rt_sigqueueinfo(int pid, int sig, compat_siginfo_t __user *uinfo); | ||
119 | long sys32_init_module(void __user *umod, unsigned long len, | 118 | long sys32_init_module(void __user *umod, unsigned long len, |
120 | const char __user *uargs); | 119 | const char __user *uargs); |
121 | long sys32_delete_module(const char __user *name_user, unsigned int flags); | 120 | long sys32_delete_module(const char __user *name_user, unsigned int flags); |
diff --git a/arch/s390/kernel/compat_wrapper.S b/arch/s390/kernel/compat_wrapper.S index 2b813b3edbd1..ee6c36b41ef5 100644 --- a/arch/s390/kernel/compat_wrapper.S +++ b/arch/s390/kernel/compat_wrapper.S | |||
@@ -716,7 +716,7 @@ ENTRY(sys32_rt_sigqueueinfo_wrapper) | |||
716 | lgfr %r2,%r2 # int | 716 | lgfr %r2,%r2 # int |
717 | lgfr %r3,%r3 # int | 717 | lgfr %r3,%r3 # int |
718 | llgtr %r4,%r4 # siginfo_emu31_t * | 718 | llgtr %r4,%r4 # siginfo_emu31_t * |
719 | jg sys32_rt_sigqueueinfo # branch to system call | 719 | jg compat_sys_rt_sigqueueinfo # branch to system call |
720 | 720 | ||
721 | ENTRY(compat_sys_rt_sigsuspend_wrapper) | 721 | ENTRY(compat_sys_rt_sigsuspend_wrapper) |
722 | llgtr %r2,%r2 # compat_sigset_t * | 722 | llgtr %r2,%r2 # compat_sigset_t * |