aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc
diff options
context:
space:
mode:
authorAl Viro <viro@zeniv.linux.org.uk>2012-05-21 23:33:55 -0400
committerAl Viro <viro@zeniv.linux.org.uk>2012-06-01 12:58:47 -0400
commit51a7b448d4134e3e8eec633435e3e8faee14a828 (patch)
tree8fc58560ffee1c944ec5e198029d5c2e6f7c0bd3 /arch/sparc
parent4ebefe3ec729003443daf153ed6fad1739271283 (diff)
new helper: restore_saved_sigmask()
first fruits of ..._restore_sigmask() helpers: now we can take boilerplate "signal didn't have a handler, clear RESTORE_SIGMASK and restore the blocked mask from ->saved_mask" into a common helper. Open-coded instances switched... Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'arch/sparc')
-rw-r--r--arch/sparc/kernel/signal32.c5
-rw-r--r--arch/sparc/kernel/signal_32.c5
-rw-r--r--arch/sparc/kernel/signal_64.c5
3 files changed, 3 insertions, 12 deletions
diff --git a/arch/sparc/kernel/signal32.c b/arch/sparc/kernel/signal32.c
index bb1513e45f1a..88e0d8122d2c 100644
--- a/arch/sparc/kernel/signal32.c
+++ b/arch/sparc/kernel/signal32.c
@@ -872,10 +872,7 @@ void do_signal32(sigset_t *oldset, struct pt_regs * regs)
872 /* If there's no signal to deliver, we just put the saved sigmask 872 /* If there's no signal to deliver, we just put the saved sigmask
873 * back 873 * back
874 */ 874 */
875 if (current_thread_info()->status & TS_RESTORE_SIGMASK) { 875 restore_saved_sigmask();
876 current_thread_info()->status &= ~TS_RESTORE_SIGMASK;
877 set_current_blocked(&current->saved_sigmask);
878 }
879} 876}
880 877
881struct sigstack32 { 878struct sigstack32 {
diff --git a/arch/sparc/kernel/signal_32.c b/arch/sparc/kernel/signal_32.c
index 6b42e8622d12..9dd97d2e171e 100644
--- a/arch/sparc/kernel/signal_32.c
+++ b/arch/sparc/kernel/signal_32.c
@@ -576,10 +576,7 @@ static void do_signal(struct pt_regs *regs, unsigned long orig_i0)
576 /* if there's no signal to deliver, we just put the saved sigmask 576 /* if there's no signal to deliver, we just put the saved sigmask
577 * back 577 * back
578 */ 578 */
579 if (test_thread_flag(TIF_RESTORE_SIGMASK)) { 579 restore_saved_sigmask();
580 clear_thread_flag(TIF_RESTORE_SIGMASK);
581 set_current_blocked(&current->saved_sigmask);
582 }
583} 580}
584 581
585void do_notify_resume(struct pt_regs *regs, unsigned long orig_i0, 582void do_notify_resume(struct pt_regs *regs, unsigned long orig_i0,
diff --git a/arch/sparc/kernel/signal_64.c b/arch/sparc/kernel/signal_64.c
index c82cf1cc3965..55b820ee0ac9 100644
--- a/arch/sparc/kernel/signal_64.c
+++ b/arch/sparc/kernel/signal_64.c
@@ -594,10 +594,7 @@ static void do_signal(struct pt_regs *regs, unsigned long orig_i0)
594 /* If there's no signal to deliver, we just put the saved sigmask 594 /* If there's no signal to deliver, we just put the saved sigmask
595 * back 595 * back
596 */ 596 */
597 if (current_thread_info()->status & TS_RESTORE_SIGMASK) { 597 restore_saved_sigmask();
598 current_thread_info()->status &= ~TS_RESTORE_SIGMASK;
599 set_current_blocked(&current->saved_sigmask);
600 }
601} 598}
602 599
603void do_notify_resume(struct pt_regs *regs, unsigned long orig_i0, unsigned long thread_info_flags) 600void do_notify_resume(struct pt_regs *regs, unsigned long orig_i0, unsigned long thread_info_flags)