diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-12-25 16:25:18 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2013-02-03 18:32:59 -0500 |
commit | 1910f4ab777f17744aec3b39fa15d3d4340df6d4 (patch) | |
tree | 4371b9edfd6995fd63256861a5f216dc109cf655 | |
parent | ea5d83db6705e2a6d3534b169420586bdb6c5223 (diff) |
mips: sigsuspend() is essentially the same as rt_sigsuspend() here
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
-rw-r--r-- | arch/mips/kernel/signal.c | 10 | ||||
-rw-r--r-- | arch/mips/kernel/signal32.c | 10 |
2 files changed, 4 insertions, 16 deletions
diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c index f221722a6d43..95b019d92f50 100644 --- a/arch/mips/kernel/signal.c +++ b/arch/mips/kernel/signal.c | |||
@@ -247,15 +247,9 @@ void __user *get_sigframe(struct k_sigaction *ka, struct pt_regs *regs, | |||
247 | */ | 247 | */ |
248 | 248 | ||
249 | #ifdef CONFIG_TRAD_SIGNALS | 249 | #ifdef CONFIG_TRAD_SIGNALS |
250 | asmlinkage int sys_sigsuspend(nabi_no_regargs struct pt_regs regs) | 250 | SYSCALL_DEFINE1(sigsuspend, sigset_t __user *, uset) |
251 | { | 251 | { |
252 | sigset_t newset; | 252 | return sys_rt_sigsuspend(uset, sizeof(sigset_t)); |
253 | sigset_t __user *uset; | ||
254 | |||
255 | uset = (sigset_t __user *) regs.regs[4]; | ||
256 | if (copy_from_user(&newset, uset, sizeof(sigset_t))) | ||
257 | return -EFAULT; | ||
258 | return sigsuspend(&newset); | ||
259 | } | 253 | } |
260 | #endif | 254 | #endif |
261 | 255 | ||
diff --git a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c index b4f0e714cf37..0b1f57111eae 100644 --- a/arch/mips/kernel/signal32.c +++ b/arch/mips/kernel/signal32.c | |||
@@ -273,15 +273,9 @@ static inline int get_sigset(sigset_t *kbuf, const compat_sigset_t __user *ubuf) | |||
273 | * Atomically swap in the new signal mask, and wait for a signal. | 273 | * Atomically swap in the new signal mask, and wait for a signal. |
274 | */ | 274 | */ |
275 | 275 | ||
276 | asmlinkage int sys32_sigsuspend(nabi_no_regargs struct pt_regs regs) | 276 | asmlinkage int sys32_sigsuspend(compat_sigset_t __user *uset) |
277 | { | 277 | { |
278 | compat_sigset_t __user *uset; | 278 | return compat_sys_rt_sigsuspend(uset, sizeof(compat_sigset_t)); |
279 | sigset_t newset; | ||
280 | |||
281 | uset = (compat_sigset_t __user *) regs.regs[4]; | ||
282 | if (get_sigset(&newset, uset)) | ||
283 | return -EFAULT; | ||
284 | return sigsuspend(&newset); | ||
285 | } | 279 | } |
286 | 280 | ||
287 | SYSCALL_DEFINE3(32_sigaction, long, sig, const struct sigaction32 __user *, act, | 281 | SYSCALL_DEFINE3(32_sigaction, long, sig, const struct sigaction32 __user *, act, |