arm64: switch to generic compat rt_sigqueueinfo()
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
@@ -8,6 +8,7 @@ config ARM64
|
|||||||
select GENERIC_CLOCKEVENTS
|
select GENERIC_CLOCKEVENTS
|
||||||
select GENERIC_COMPAT_RT_SIGPENDING
|
select GENERIC_COMPAT_RT_SIGPENDING
|
||||||
select GENERIC_COMPAT_RT_SIGPROCMASK
|
select GENERIC_COMPAT_RT_SIGPROCMASK
|
||||||
|
select GENERIC_COMPAT_RT_SIGQUEUEINFO
|
||||||
select GENERIC_HARDIRQS_NO_DEPRECATED
|
select GENERIC_HARDIRQS_NO_DEPRECATED
|
||||||
select GENERIC_IOMAP
|
select GENERIC_IOMAP
|
||||||
select GENERIC_IRQ_PROBE
|
select GENERIC_IRQ_PROBE
|
||||||
|
|||||||
@@ -693,24 +693,6 @@ int compat_setup_frame(int usig, struct k_sigaction *ka, sigset_t *set,
|
|||||||
return err;
|
return err;
|
||||||
}
|
}
|
||||||
|
|
||||||
asmlinkage int compat_sys_rt_sigqueueinfo(int pid, int sig,
|
|
||||||
compat_siginfo_t __user *uinfo)
|
|
||||||
{
|
|
||||||
siginfo_t info;
|
|
||||||
int ret;
|
|
||||||
mm_segment_t old_fs = get_fs();
|
|
||||||
|
|
||||||
ret = copy_siginfo_from_user32(&info, uinfo);
|
|
||||||
if (unlikely(ret))
|
|
||||||
return ret;
|
|
||||||
|
|
||||||
set_fs (KERNEL_DS);
|
|
||||||
/* The __user pointer cast is valid because of the set_fs() */
|
|
||||||
ret = sys_rt_sigqueueinfo(pid, sig, (siginfo_t __user *) &info);
|
|
||||||
set_fs (old_fs);
|
|
||||||
return ret;
|
|
||||||
}
|
|
||||||
|
|
||||||
void compat_setup_restart_syscall(struct pt_regs *regs)
|
void compat_setup_restart_syscall(struct pt_regs *regs)
|
||||||
{
|
{
|
||||||
regs->regs[7] = __NR_compat_restart_syscall;
|
regs->regs[7] = __NR_compat_restart_syscall;
|
||||||
|
|||||||
Reference in New Issue
Block a user