From a4e477473d3ff261c2319b9cc9ad6339cb330043 Mon Sep 17 00:00:00 2001 From: Al Viro Date: Mon, 24 Dec 2012 23:12:04 -0500 Subject: [PATCH] --- yaml --- r: 356644 b: refs/heads/master c: 9aae8fc05d2d130797be436eb7cae29c32710193 h: refs/heads/master v: v3 --- [refs] | 2 +- trunk/include/linux/signal.h | 2 -- trunk/kernel/compat.c | 11 ----------- trunk/kernel/signal.c | 17 ++++++++++++++++- 4 files changed, 17 insertions(+), 15 deletions(-) diff --git a/[refs] b/[refs] index 33fd7d8a6b4c..9213ef0fbfc2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5cf22100229b855bc4559dccfd8d7cb7266f99f5 +refs/heads/master: 9aae8fc05d2d130797be436eb7cae29c32710193 diff --git a/trunk/include/linux/signal.h b/trunk/include/linux/signal.h index 786bd99fde65..ed1e71f1aac7 100644 --- a/trunk/include/linux/signal.h +++ b/trunk/include/linux/signal.h @@ -241,8 +241,6 @@ extern int do_send_sig_info(int sig, struct siginfo *info, struct task_struct *p, bool group); extern int group_send_sig_info(int sig, struct siginfo *info, struct task_struct *p); extern int __group_send_sig_info(int, struct siginfo *, struct task_struct *); -extern long do_rt_tgsigqueueinfo(pid_t tgid, pid_t pid, int sig, - siginfo_t *info); extern int do_sigtimedwait(const sigset_t *, siginfo_t *, const struct timespec *); extern int sigprocmask(int, sigset_t *, sigset_t *); diff --git a/trunk/kernel/compat.c b/trunk/kernel/compat.c index a53b04a2b5eb..cf75a288f0c0 100644 --- a/trunk/kernel/compat.c +++ b/trunk/kernel/compat.c @@ -1025,17 +1025,6 @@ COMPAT_SYSCALL_DEFINE4(rt_sigtimedwait, compat_sigset_t __user *, uthese, return ret; } -asmlinkage long -compat_sys_rt_tgsigqueueinfo(compat_pid_t tgid, compat_pid_t pid, int sig, - struct compat_siginfo __user *uinfo) -{ - siginfo_t info; - - if (copy_siginfo_from_user32(&info, uinfo)) - return -EFAULT; - return do_rt_tgsigqueueinfo(tgid, pid, sig, &info); -} - #ifdef __ARCH_WANT_COMPAT_SYS_TIME /* compat_time_t is a 32 bit "long" and needs to get converted. */ diff --git a/trunk/kernel/signal.c b/trunk/kernel/signal.c index 93fd4b83d866..5a4aed1244fb 100644 --- a/trunk/kernel/signal.c +++ b/trunk/kernel/signal.c @@ -3030,7 +3030,7 @@ COMPAT_SYSCALL_DEFINE3(rt_sigqueueinfo, #endif #endif -long do_rt_tgsigqueueinfo(pid_t tgid, pid_t pid, int sig, siginfo_t *info) +static int do_rt_tgsigqueueinfo(pid_t tgid, pid_t pid, int sig, siginfo_t *info) { /* This is only valid for single tasks */ if (pid <= 0 || tgid <= 0) @@ -3060,6 +3060,21 @@ SYSCALL_DEFINE4(rt_tgsigqueueinfo, pid_t, tgid, pid_t, pid, int, sig, return do_rt_tgsigqueueinfo(tgid, pid, sig, &info); } +#ifdef CONFIG_COMPAT +COMPAT_SYSCALL_DEFINE4(rt_tgsigqueueinfo, + compat_pid_t, tgid, + compat_pid_t, pid, + int, sig, + struct compat_siginfo __user *, uinfo) +{ + siginfo_t info; + + if (copy_siginfo_from_user32(&info, uinfo)) + return -EFAULT; + return do_rt_tgsigqueueinfo(tgid, pid, sig, &info); +} +#endif + int do_sigaction(int sig, struct k_sigaction *act, struct k_sigaction *oact) { struct task_struct *t = current;