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>
This commit is contained in:
parent
1c37ea8277
commit
bde208d2e1
6 changed files with 2 additions and 55 deletions
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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)
|
||||
|
|
|
@ -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)
|
||||
{
|
||||
|
|
|
@ -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;
|
||||
|
|
|
@ -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)
|
||||
|
|
Loading…
Reference in a new issue