diff options
Diffstat (limited to 'arch/mips/kernel/signal.c')
-rw-r--r-- | arch/mips/kernel/signal.c | 18 |
1 files changed, 3 insertions, 15 deletions
diff --git a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c index 18355060f241..53c6e90082f0 100644 --- a/arch/mips/kernel/signal.c +++ b/arch/mips/kernel/signal.c | |||
@@ -514,7 +514,7 @@ struct mips_abi mips_abi = { | |||
514 | .restart = __NR_restart_syscall | 514 | .restart = __NR_restart_syscall |
515 | }; | 515 | }; |
516 | 516 | ||
517 | static int handle_signal(unsigned long sig, siginfo_t *info, | 517 | static void handle_signal(unsigned long sig, siginfo_t *info, |
518 | struct k_sigaction *ka, struct pt_regs *regs) | 518 | struct k_sigaction *ka, struct pt_regs *regs) |
519 | { | 519 | { |
520 | sigset_t *oldset = sigmask_to_save(); | 520 | sigset_t *oldset = sigmask_to_save(); |
@@ -551,11 +551,9 @@ static int handle_signal(unsigned long sig, siginfo_t *info, | |||
551 | ka, regs, sig, oldset); | 551 | ka, regs, sig, oldset); |
552 | 552 | ||
553 | if (ret) | 553 | if (ret) |
554 | return ret; | 554 | return; |
555 | 555 | ||
556 | block_sigmask(ka, sig); | 556 | block_sigmask(ka, sig); |
557 | |||
558 | return ret; | ||
559 | } | 557 | } |
560 | 558 | ||
561 | static void do_signal(struct pt_regs *regs) | 559 | static void do_signal(struct pt_regs *regs) |
@@ -575,17 +573,7 @@ static void do_signal(struct pt_regs *regs) | |||
575 | signr = get_signal_to_deliver(&info, &ka, regs, NULL); | 573 | signr = get_signal_to_deliver(&info, &ka, regs, NULL); |
576 | if (signr > 0) { | 574 | if (signr > 0) { |
577 | /* Whee! Actually deliver the signal. */ | 575 | /* Whee! Actually deliver the signal. */ |
578 | if (handle_signal(signr, &info, &ka, regs) == 0) { | 576 | handle_signal(signr, &info, &ka, regs); |
579 | /* | ||
580 | * A signal was successfully delivered; the saved | ||
581 | * sigmask will have been stored in the signal frame, | ||
582 | * and will be restored by sigreturn, so we can simply | ||
583 | * clear the TIF_RESTORE_SIGMASK flag. | ||
584 | */ | ||
585 | if (test_thread_flag(TIF_RESTORE_SIGMASK)) | ||
586 | clear_thread_flag(TIF_RESTORE_SIGMASK); | ||
587 | } | ||
588 | |||
589 | return; | 577 | return; |
590 | } | 578 | } |
591 | 579 | ||