Browse Source

s390: switch to generic compat rt_sigqueueinfo()

Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Al Viro 12 years ago
parent
commit
07562be77d

+ 1 - 0
arch/s390/Kconfig

@@ -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
 

+ 0 - 15
arch/s390/kernel/compat_linux.c

@@ -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)
 {

+ 0 - 1
arch/s390/kernel/compat_linux.h

@@ -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);

+ 1 - 1
arch/s390/kernel/compat_wrapper.S

@@ -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 *