mirror of
https://github.com/FEX-Emu/linux.git
synced 2025-01-14 13:39:10 +00:00
parisc: switch to generic compat rt_sigprocmask()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
6e26aab98c
commit
e6a7ad517a
@ -24,6 +24,7 @@ config PARISC
|
|||||||
select MODULES_USE_ELF_RELA
|
select MODULES_USE_ELF_RELA
|
||||||
select CLONE_BACKWARDS
|
select CLONE_BACKWARDS
|
||||||
select GENERIC_SIGALTSTACK
|
select GENERIC_SIGALTSTACK
|
||||||
|
select GENERIC_COMPAT_RT_SIGPROCMASK
|
||||||
|
|
||||||
help
|
help
|
||||||
The PA-RISC microprocessor is designed by Hewlett-Packard and used
|
The PA-RISC microprocessor is designed by Hewlett-Packard and used
|
||||||
|
@ -72,41 +72,6 @@ put_sigset32(compat_sigset_t __user *up, sigset_t *set, size_t sz)
|
|||||||
return copy_to_user(up, &s, sizeof s);
|
return copy_to_user(up, &s, sizeof s);
|
||||||
}
|
}
|
||||||
|
|
||||||
static int
|
|
||||||
get_sigset32(compat_sigset_t __user *up, sigset_t *set, size_t sz)
|
|
||||||
{
|
|
||||||
compat_sigset_t s;
|
|
||||||
int r;
|
|
||||||
|
|
||||||
if (sz != sizeof *set)
|
|
||||||
return -EINVAL;
|
|
||||||
|
|
||||||
if ((r = copy_from_user(&s, up, sz)) == 0) {
|
|
||||||
sigset_32to64(set, &s);
|
|
||||||
}
|
|
||||||
|
|
||||||
return r;
|
|
||||||
}
|
|
||||||
|
|
||||||
int sys32_rt_sigprocmask(int how, compat_sigset_t __user *set, compat_sigset_t __user *oset,
|
|
||||||
unsigned int sigsetsize)
|
|
||||||
{
|
|
||||||
sigset_t old_set, new_set;
|
|
||||||
int ret;
|
|
||||||
|
|
||||||
if (set && get_sigset32(set, &new_set, sigsetsize))
|
|
||||||
return -EFAULT;
|
|
||||||
|
|
||||||
KERNEL_SYSCALL(ret, sys_rt_sigprocmask, how, set ? (sigset_t __user *)&new_set : NULL,
|
|
||||||
oset ? (sigset_t __user *)&old_set : NULL, sigsetsize);
|
|
||||||
|
|
||||||
if (!ret && oset && put_sigset32(oset, &old_set, sigsetsize))
|
|
||||||
return -EFAULT;
|
|
||||||
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
|
|
||||||
int sys32_rt_sigpending(compat_sigset_t __user *uset, unsigned int sigsetsize)
|
int sys32_rt_sigpending(compat_sigset_t __user *uset, unsigned int sigsetsize)
|
||||||
{
|
{
|
||||||
int ret;
|
int ret;
|
||||||
|
@ -266,7 +266,7 @@
|
|||||||
/* signals need a careful review */
|
/* signals need a careful review */
|
||||||
ENTRY_SAME(rt_sigreturn_wrapper)
|
ENTRY_SAME(rt_sigreturn_wrapper)
|
||||||
ENTRY_DIFF(rt_sigaction)
|
ENTRY_DIFF(rt_sigaction)
|
||||||
ENTRY_DIFF(rt_sigprocmask) /* 175 */
|
ENTRY_COMP(rt_sigprocmask) /* 175 */
|
||||||
ENTRY_DIFF(rt_sigpending)
|
ENTRY_DIFF(rt_sigpending)
|
||||||
ENTRY_COMP(rt_sigtimedwait)
|
ENTRY_COMP(rt_sigtimedwait)
|
||||||
/* even though the struct siginfo_t is different, it appears like
|
/* even though the struct siginfo_t is different, it appears like
|
||||||
|
Loading…
x
Reference in New Issue
Block a user