diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-05-21 23:33:55 -0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-06-01 12:58:47 -0400 |
commit | 51a7b448d4134e3e8eec633435e3e8faee14a828 (patch) | |
tree | 8fc58560ffee1c944ec5e198029d5c2e6f7c0bd3 /arch/powerpc/kernel/signal.c | |
parent | 4ebefe3ec729003443daf153ed6fad1739271283 (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/powerpc/kernel/signal.c')
-rw-r--r-- | arch/powerpc/kernel/signal.c | 6 |
1 files changed, 1 insertions, 5 deletions
diff --git a/arch/powerpc/kernel/signal.c b/arch/powerpc/kernel/signal.c index bfc3ec1382fb..0f4cc67f4268 100644 --- a/arch/powerpc/kernel/signal.c +++ b/arch/powerpc/kernel/signal.c | |||
@@ -132,12 +132,8 @@ static int do_signal(struct pt_regs *regs) | |||
132 | check_syscall_restart(regs, &ka, signr > 0); | 132 | check_syscall_restart(regs, &ka, signr > 0); |
133 | 133 | ||
134 | if (signr <= 0) { | 134 | if (signr <= 0) { |
135 | struct thread_info *ti = current_thread_info(); | ||
136 | /* No signal to deliver -- put the saved sigmask back */ | 135 | /* No signal to deliver -- put the saved sigmask back */ |
137 | if (ti->local_flags & _TLF_RESTORE_SIGMASK) { | 136 | restore_saved_sigmask(); |
138 | ti->local_flags &= ~_TLF_RESTORE_SIGMASK; | ||
139 | sigprocmask(SIG_SETMASK, ¤t->saved_sigmask, NULL); | ||
140 | } | ||
141 | regs->trap = 0; | 137 | regs->trap = 0; |
142 | return 0; /* no signals delivered */ | 138 | return 0; /* no signals delivered */ |
143 | } | 139 | } |