aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-11-25 01:36:15 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2013-02-03 18:32:49 -0500
commitbde208d2e10b8e8cf01cadadf203f5abcf1e4fe2 (patch)
treec912569356a020402096e7a4e1919a578eca3b05
parent1c37ea82775a160b1f03d27bda034260444caa2e (diff)
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.S2
-rw-r--r--arch/mips/kernel/scall64-o32.S2
-rw-r--r--arch/mips/kernel/signal.c13
-rw-r--r--arch/mips/kernel/signal32.c17
-rw-r--r--arch/mips/kernel/signal_n32.c21
-rw-r--r--kernel/signal.c2
6 files changed, 2 insertions, 55 deletions
diff --git a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
index 7388e25984b2..ab34b32f1e34 100644
--- a/arch/mips/kernel/scall64-n32.S
+++ b/arch/mips/kernel/scall64-n32.S
@@ -232,7 +232,7 @@ EXPORT(sysn32_call_table)
232 PTR sys_32_rt_sigpending /* 6125 */ 232 PTR sys_32_rt_sigpending /* 6125 */
233 PTR compat_sys_rt_sigtimedwait 233 PTR compat_sys_rt_sigtimedwait
234 PTR sys_32_rt_sigqueueinfo 234 PTR sys_32_rt_sigqueueinfo
235 PTR sysn32_rt_sigsuspend 235 PTR compat_sys_rt_sigsuspend
236 PTR compat_sys_sigaltstack 236 PTR compat_sys_sigaltstack
237 PTR compat_sys_utime /* 6130 */ 237 PTR compat_sys_utime /* 6130 */
238 PTR sys_mknod 238 PTR sys_mknod
diff --git a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
index 058a6c1e00a1..144d904cdb22 100644
--- a/arch/mips/kernel/scall64-o32.S
+++ b/arch/mips/kernel/scall64-o32.S
@@ -391,7 +391,7 @@ sys_call_table:
391 PTR sys_32_rt_sigpending 391 PTR sys_32_rt_sigpending
392 PTR compat_sys_rt_sigtimedwait 392 PTR compat_sys_rt_sigtimedwait
393 PTR sys_32_rt_sigqueueinfo 393 PTR sys_32_rt_sigqueueinfo
394 PTR sys32_rt_sigsuspend 394 PTR compat_sys_rt_sigsuspend
395 PTR sys_32_pread /* 4200 */ 395 PTR sys_32_pread /* 4200 */
396 PTR sys_32_pwrite 396 PTR sys_32_pwrite
397 PTR sys_chown 397 PTR sys_chown
diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c
index eab30865b2bd..f221722a6d43 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)
259} 259}
260#endif 260#endif
261 261
262SYSCALL_DEFINE2(rt_sigsuspend, sigset_t __user *,unewset, size_t, sigsetsize)
263{
264 sigset_t newset;
265
266 /* XXX Don't preclude handling different sized sigset_t's. */
267 if (sigsetsize != sizeof(sigset_t))
268 return -EINVAL;
269
270 if (copy_from_user(&newset, unewset, sizeof(newset)))
271 return -EFAULT;
272 return sigsuspend(&newset);
273}
274
275#ifdef CONFIG_TRAD_SIGNALS 262#ifdef CONFIG_TRAD_SIGNALS
276SYSCALL_DEFINE3(sigaction, int, sig, const struct sigaction __user *, act, 263SYSCALL_DEFINE3(sigaction, int, sig, const struct sigaction __user *, act,
277 struct sigaction __user *, oact) 264 struct sigaction __user *, oact)
diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c
index bb3ec6f0863e..ff6146dddf5f 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)
284 return sigsuspend(&newset); 284 return sigsuspend(&newset);
285} 285}
286 286
287asmlinkage int sys32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs)
288{
289 compat_sigset_t __user *uset;
290 sigset_t newset;
291 size_t sigsetsize;
292
293 /* XXX Don't preclude handling different sized sigset_t's. */
294 sigsetsize = regs.regs[5];
295 if (sigsetsize != sizeof(compat_sigset_t))
296 return -EINVAL;
297
298 uset = (compat_sigset_t __user *) regs.regs[4];
299 if (get_sigset(&newset, uset))
300 return -EFAULT;
301 return sigsuspend(&newset);
302}
303
304SYSCALL_DEFINE3(32_sigaction, long, sig, const struct sigaction32 __user *, act, 287SYSCALL_DEFINE3(32_sigaction, long, sig, const struct sigaction32 __user *, act,
305 struct sigaction32 __user *, oact) 288 struct sigaction32 __user *, oact)
306{ 289{
diff --git a/arch/mips/kernel/signal_n32.c b/arch/mips/kernel/signal_n32.c
index e62e2bc63a81..5f4ef2ae6199 100644
--- a/arch/mips/kernel/signal_n32.c
+++ b/arch/mips/kernel/signal_n32.c
@@ -65,27 +65,6 @@ struct rt_sigframe_n32 {
65 struct ucontextn32 rs_uc; 65 struct ucontextn32 rs_uc;
66}; 66};
67 67
68extern void sigset_from_compat(sigset_t *set, compat_sigset_t *compat);
69
70asmlinkage int sysn32_rt_sigsuspend(nabi_no_regargs struct pt_regs regs)
71{
72 compat_sigset_t __user *unewset;
73 compat_sigset_t uset;
74 size_t sigsetsize;
75 sigset_t newset;
76
77 /* XXX Don't preclude handling different sized sigset_t's. */
78 sigsetsize = regs.regs[5];
79 if (sigsetsize != sizeof(sigset_t))
80 return -EINVAL;
81
82 unewset = (compat_sigset_t __user *) regs.regs[4];
83 if (copy_from_user(&uset, unewset, sizeof(uset)))
84 return -EFAULT;
85 sigset_from_compat(&newset, &uset);
86 return sigsuspend(&newset);
87}
88
89asmlinkage void sysn32_rt_sigreturn(nabi_no_regargs struct pt_regs regs) 68asmlinkage void sysn32_rt_sigreturn(nabi_no_regargs struct pt_regs regs)
90{ 69{
91 struct rt_sigframe_n32 __user *frame; 70 struct rt_sigframe_n32 __user *frame;
diff --git a/kernel/signal.c b/kernel/signal.c
index 775f5552fa0e..87c09e3061d2 100644
--- a/kernel/signal.c
+++ b/kernel/signal.c
@@ -3562,7 +3562,6 @@ int sigsuspend(sigset_t *set)
3562 return -ERESTARTNOHAND; 3562 return -ERESTARTNOHAND;
3563} 3563}
3564 3564
3565#ifdef __ARCH_WANT_SYS_RT_SIGSUSPEND
3566/** 3565/**
3567 * sys_rt_sigsuspend - replace the signal mask for a value with the 3566 * sys_rt_sigsuspend - replace the signal mask for a value with the
3568 * @unewset value until a signal is received 3567 * @unewset value until a signal is received
@@ -3603,7 +3602,6 @@ COMPAT_SYSCALL_DEFINE2(rt_sigsuspend, compat_sigset_t __user *, unewset, compat_
3603#endif 3602#endif
3604} 3603}
3605#endif 3604#endif
3606#endif
3607 3605
3608#ifdef CONFIG_OLD_SIGSUSPEND 3606#ifdef CONFIG_OLD_SIGSUSPEND
3609SYSCALL_DEFINE1(sigsuspend, old_sigset_t, mask) 3607SYSCALL_DEFINE1(sigsuspend, old_sigset_t, mask)