aboutsummaryrefslogtreecommitdiffstats
path: root/arch/s390/kernel/compat_signal.c
diff options
context:
space:
mode:
authorMatt Fleming <matt.fleming@intel.com>2012-03-11 11:59:33 -0400
committerMartin Schwidefsky <schwidefsky@de.ibm.com>2012-03-11 11:59:29 -0400
commitad252ffa2a0fbb1f37e81688322034b3af037cee (patch)
tree5adf49c487acce304549ecec7d987fcd30e6a37e /arch/s390/kernel/compat_signal.c
parent3ab121ab18669226742891416fe7ecc86dadb047 (diff)
[S390] Use block_sigmask()
Use the new helper function introduced in commit 5e6292c0f28f ("signal: add block_sigmask() for adding sigmask to current->blocked") which centralises the code for updating current->blocked after successfully delivering a signal and reduces the amount of duplicate code across architectures. In the past some architectures got this code wrong, so using this helper function should stop that from happening again. Cc: Oleg Nesterov <oleg@redhat.com> Acked-by: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: linux-s390@vger.kernel.org Signed-off-by: Matt Fleming <matt.fleming@intel.com> Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Signed-off-by: Martin Schwidefsky <schwidefsky@de.ibm.com>
Diffstat (limited to 'arch/s390/kernel/compat_signal.c')
-rw-r--r--arch/s390/kernel/compat_signal.c6
1 files changed, 1 insertions, 5 deletions
diff --git a/arch/s390/kernel/compat_signal.c b/arch/s390/kernel/compat_signal.c
index 6fe78c2f95d9..53a82c8d50e9 100644
--- a/arch/s390/kernel/compat_signal.c
+++ b/arch/s390/kernel/compat_signal.c
@@ -581,7 +581,6 @@ give_sigsegv:
581int handle_signal32(unsigned long sig, struct k_sigaction *ka, 581int handle_signal32(unsigned long sig, struct k_sigaction *ka,
582 siginfo_t *info, sigset_t *oldset, struct pt_regs *regs) 582 siginfo_t *info, sigset_t *oldset, struct pt_regs *regs)
583{ 583{
584 sigset_t blocked;
585 int ret; 584 int ret;
586 585
587 /* Set up the stack frame */ 586 /* Set up the stack frame */
@@ -591,10 +590,7 @@ int handle_signal32(unsigned long sig, struct k_sigaction *ka,
591 ret = setup_frame32(sig, ka, oldset, regs); 590 ret = setup_frame32(sig, ka, oldset, regs);
592 if (ret) 591 if (ret)
593 return ret; 592 return ret;
594 sigorsets(&blocked, &current->blocked, &ka->sa.sa_mask); 593 block_sigmask(ka, sig);
595 if (!(ka->sa.sa_flags & SA_NODEFER))
596 sigaddset(&blocked, sig);
597 set_current_blocked(&blocked);
598 return 0; 594 return 0;
599} 595}
600 596