diff options
| author | Al Viro <viro@zeniv.linux.org.uk> | 2012-11-25 01:36:15 -0500 | 
|---|---|---|
| committer | Al Viro <viro@zeniv.linux.org.uk> | 2013-02-03 18:32:49 -0500 | 
| commit | bde208d2e10b8e8cf01cadadf203f5abcf1e4fe2 (patch) | |
| tree | c912569356a020402096e7a4e1919a578eca3b05 | |
| parent | 1c37ea82775a160b1f03d27bda034260444caa2e (diff) | |
| download | olio-linux-3.10-bde208d2e10b8e8cf01cadadf203f5abcf1e4fe2.tar.xz olio-linux-3.10-bde208d2e10b8e8cf01cadadf203f5abcf1e4fe2.zip  | |
switch mips to generic rt_sigsuspend(), make it unconditional
mips was the last architecture not using the generic variant.
Both native and compat variants switched to generic, which is
made unconditional now.
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
| -rw-r--r-- | arch/mips/kernel/scall64-n32.S | 2 | ||||
| -rw-r--r-- | arch/mips/kernel/scall64-o32.S | 2 | ||||
| -rw-r--r-- | arch/mips/kernel/signal.c | 13 | ||||
| -rw-r--r-- | arch/mips/kernel/signal32.c | 17 | ||||
| -rw-r--r-- | arch/mips/kernel/signal_n32.c | 21 | ||||
| -rw-r--r-- | kernel/signal.c | 2 | 
6 files changed, 2 insertions, 55 deletions
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S index 7388e25984b..ab34b32f1e3 100644 --- a/arch/mips/kernel/scall64-n32.S +++ b/arch/mips/kernel/scall64-n32.S @@ -232,7 +232,7 @@ EXPORT(sysn32_call_table)  	PTR	sys_32_rt_sigpending		/* 6125 */  	PTR	compat_sys_rt_sigtimedwait  	PTR	sys_32_rt_sigqueueinfo -	PTR	sysn32_rt_sigsuspend +	PTR	compat_sys_rt_sigsuspend  	PTR	compat_sys_sigaltstack  	PTR	compat_sys_utime		/* 6130 */  	PTR	sys_mknod diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S index 058a6c1e00a..144d904cdb2 100644 --- a/arch/mips/kernel/scall64-o32.S +++ b/arch/mips/kernel/scall64-o32.S @@ -391,7 +391,7 @@ sys_call_table:  	PTR	sys_32_rt_sigpending  	PTR	compat_sys_rt_sigtimedwait  	PTR	sys_32_rt_sigqueueinfo -	PTR	sys32_rt_sigsuspend +	PTR	compat_sys_rt_sigsuspend  	PTR	sys_32_pread			/* 4200 */  	PTR	sys_32_pwrite  	PTR	sys_chown diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c index eab30865b2b..f221722a6d4 100644 --- a/arch/mips/kernel/signal.c +++ b/arch/mips/kernel/signal.c @@ -259,19 +259,6 @@ asmlinkage int sys_sigsuspend(nabi_no_regargs struct pt_regs regs)  }  #endif -SYSCALL_DEFINE2(rt_sigsuspend, sigset_t __user *,unewset, size_t, sigsetsize) -{ -	sigset_t newset; - -	/* XXX Don't preclude handling different sized sigset_t's.  */ -	if (sigsetsize != sizeof(sigset_t)) -		return -EINVAL; - -	if (copy_from_user(&newset, unewset, sizeof(newset))) -		return -EFAULT; -	return sigsuspend(&newset); -} -  #ifdef CONFIG_TRAD_SIGNALS  SYSCALL_DEFINE3(sigaction, int, sig, const struct sigaction __user *, act,  	struct sigaction __user *, oact) diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c index bb3ec6f0863..ff6146dddf5 100644 --- a/arch/mips/kernel/signal32.c +++ b/arch/mips/kernel/signal32.c @@ -284,23 +284,6 @@ asmlinkage int sys32_sigsuspend(nabi_no_regargs struct pt_regs regs)  	return sigsuspend(&newset);  } -asmlinkage int sys32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) -{ -	compat_sigset_t __user *uset; -	sigset_t newset; -	size_t sigsetsize; - -	/* XXX Don't preclude handling different sized sigset_t's.  */ -	sigsetsize = regs.regs[5]; -	if (sigsetsize != sizeof(compat_sigset_t)) -		return -EINVAL; - -	uset = (compat_sigset_t __user *) regs.regs[4]; -	if (get_sigset(&newset, uset)) -		return -EFAULT; -	return sigsuspend(&newset); -} -  SYSCALL_DEFINE3(32_sigaction, long, sig, const struct sigaction32 __user *, act,  	struct sigaction32 __user *, oact)  { diff --git a/arch/mips/kernel/signal_n32.c b/arch/mips/kernel/signal_n32.c index e62e2bc63a8..5f4ef2ae619 100644 --- a/arch/mips/kernel/signal_n32.c +++ b/arch/mips/kernel/signal_n32.c @@ -65,27 +65,6 @@ struct rt_sigframe_n32 {  	struct ucontextn32 rs_uc;  }; -extern void sigset_from_compat(sigset_t *set, compat_sigset_t *compat); - -asmlinkage int sysn32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs) -{ -	compat_sigset_t __user *unewset; -	compat_sigset_t uset; -	size_t sigsetsize; -	sigset_t newset; - -	/* XXX Don't preclude handling different sized sigset_t's.  */ -	sigsetsize = regs.regs[5]; -	if (sigsetsize != sizeof(sigset_t)) -		return -EINVAL; - -	unewset = (compat_sigset_t __user *) regs.regs[4]; -	if (copy_from_user(&uset, unewset, sizeof(uset))) -		return -EFAULT; -	sigset_from_compat(&newset, &uset); -	return sigsuspend(&newset); -} -  asmlinkage void sysn32_rt_sigreturn(nabi_no_regargs struct pt_regs regs)  {  	struct rt_sigframe_n32 __user *frame; diff --git a/kernel/signal.c b/kernel/signal.c index 775f5552fa0..87c09e3061d 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -3562,7 +3562,6 @@ int sigsuspend(sigset_t *set)  	return -ERESTARTNOHAND;  } -#ifdef __ARCH_WANT_SYS_RT_SIGSUSPEND  /**   *  sys_rt_sigsuspend - replace the signal mask for a value with the   *	@unewset value until a signal is received @@ -3603,7 +3602,6 @@ COMPAT_SYSCALL_DEFINE2(rt_sigsuspend, compat_sigset_t __user *, unewset, compat_  #endif  }  #endif -#endif  #ifdef CONFIG_OLD_SIGSUSPEND  SYSCALL_DEFINE1(sigsuspend, old_sigset_t, mask)  |