diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-12-25 19:14:55 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2013-02-03 18:16:27 -0500 |
commit | 5b3eb3ade4444c3b1419ffa23598a57f6f4bf494 (patch) | |
tree | 1f25f5eaf46fac683c502562347cb900ec946978 /arch/x86/kernel/signal.c | |
parent | 29fd448084e2da6d19ab675cf01d4a65fe2fcc44 (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.c | 47 |
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 | ||
539 | asmlinkage int | ||
540 | sys_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 | */ |