aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/signal.c
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-12-25 19:14:55 -0500
committerAl Viro <viro@zeniv.linux.org.uk>2013-02-03 18:16:27 -0500
commit5b3eb3ade4444c3b1419ffa23598a57f6f4bf494 (patch)
tree1f25f5eaf46fac683c502562347cb900ec946978 /arch/x86/kernel/signal.c
parent29fd448084e2da6d19ab675cf01d4a65fe2fcc44 (diff)
x86: switch to generic old sigaction
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/x86/kernel/signal.c')
-rw-r--r--arch/x86/kernel/signal.c47
1 files changed, 0 insertions, 47 deletions
diff --git a/arch/x86/kernel/signal.c b/arch/x86/kernel/signal.c
index 057712901509..d5b1f8a912ff 100644
--- a/arch/x86/kernel/signal.c
+++ b/arch/x86/kernel/signal.c
@@ -535,53 +535,6 @@ static int x32_setup_rt_frame(int sig, struct k_sigaction *ka,
535 return 0; 535 return 0;
536} 536}
537 537
538#ifdef CONFIG_X86_32
539asmlinkage int
540sys_sigaction(int sig, const struct old_sigaction __user *act,
541 struct old_sigaction __user *oact)
542{
543 struct k_sigaction new_ka, old_ka;
544 int ret = 0;
545
546 if (act) {
547 old_sigset_t mask;
548
549 if (!access_ok(VERIFY_READ, act, sizeof(*act)))
550 return -EFAULT;
551
552 get_user_try {
553 get_user_ex(new_ka.sa.sa_handler, &act->sa_handler);
554 get_user_ex(new_ka.sa.sa_flags, &act->sa_flags);
555 get_user_ex(mask, &act->sa_mask);
556 get_user_ex(new_ka.sa.sa_restorer, &act->sa_restorer);
557 } get_user_catch(ret);
558
559 if (ret)
560 return -EFAULT;
561 siginitset(&new_ka.sa.sa_mask, mask);
562 }
563
564 ret = do_sigaction(sig, act ? &new_ka : NULL, oact ? &old_ka : NULL);
565
566 if (!ret && oact) {
567 if (!access_ok(VERIFY_WRITE, oact, sizeof(*oact)))
568 return -EFAULT;
569
570 put_user_try {
571 put_user_ex(old_ka.sa.sa_handler, &oact->sa_handler);
572 put_user_ex(old_ka.sa.sa_flags, &oact->sa_flags);
573 put_user_ex(old_ka.sa.sa_mask.sig[0], &oact->sa_mask);
574 put_user_ex(old_ka.sa.sa_restorer, &oact->sa_restorer);
575 } put_user_catch(ret);
576
577 if (ret)
578 return -EFAULT;
579 }
580
581 return ret;
582}
583#endif /* CONFIG_X86_32 */
584
585/* 538/*
586 * Do a signal return; undo the signal stack. 539 * Do a signal return; undo the signal stack.
587 */ 540 */