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 /include/linux/sched.h | |
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 'include/linux/sched.h')
-rw-r--r-- | include/linux/sched.h | 6 |
1 files changed, 6 insertions, 0 deletions
diff --git a/include/linux/sched.h b/include/linux/sched.h index 660c8ae93471..f1b46b88f6f5 100644 --- a/include/linux/sched.h +++ b/include/linux/sched.h | |||
@@ -2207,6 +2207,12 @@ extern int send_sigqueue(struct sigqueue *, struct task_struct *, int group); | |||
2207 | extern int do_sigaction(int, struct k_sigaction *, struct k_sigaction *); | 2207 | extern int do_sigaction(int, struct k_sigaction *, struct k_sigaction *); |
2208 | extern int do_sigaltstack(const stack_t __user *, stack_t __user *, unsigned long); | 2208 | extern int do_sigaltstack(const stack_t __user *, stack_t __user *, unsigned long); |
2209 | 2209 | ||
2210 | static inline void restore_saved_sigmask(void) | ||
2211 | { | ||
2212 | if (test_and_clear_restore_sigmask()) | ||
2213 | set_current_blocked(¤t->saved_sigmask); | ||
2214 | } | ||
2215 | |||
2210 | static inline int kill_cad_pid(int sig, int priv) | 2216 | static inline int kill_cad_pid(int sig, int priv) |
2211 | { | 2217 | { |
2212 | return kill_pid(cad_pid, sig, priv); | 2218 | return kill_pid(cad_pid, sig, priv); |