diff options
author | Oleg Nesterov <oleg@tv-sign.ru> | 2006-03-28 19:11:14 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-03-28 21:36:42 -0500 |
commit | a9e88e84b5245da0a1dadb6ccca70ae84e93ccf6 (patch) | |
tree | 2b155e7f5ce7ff14a986361fe81d77bf9039e95e /kernel/signal.c | |
parent | f63ee72e0fb82e504a0489490babc7612c7cd6c2 (diff) |
[PATCH] introduce sig_needs_tasklist() helper
In my opinion this patch cleans up the code.
Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Cc: "Eric W. Biederman" <ebiederm@xmission.com>
Signed-off-by: Andrew Morton <akpm@osdl.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'kernel/signal.c')
-rw-r--r-- | kernel/signal.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index 819fa49aa70a..c5b65aa4c2bc 100644 --- a/kernel/signal.c +++ b/kernel/signal.c | |||
@@ -147,6 +147,9 @@ static kmem_cache_t *sigqueue_cachep; | |||
147 | #define sig_kernel_stop(sig) \ | 147 | #define sig_kernel_stop(sig) \ |
148 | (((sig) < SIGRTMIN) && T(sig, SIG_KERNEL_STOP_MASK)) | 148 | (((sig) < SIGRTMIN) && T(sig, SIG_KERNEL_STOP_MASK)) |
149 | 149 | ||
150 | #define sig_needs_tasklist(sig) \ | ||
151 | (((sig) < SIGRTMIN) && T(sig, SIG_KERNEL_STOP_MASK | M(SIGCONT))) | ||
152 | |||
150 | #define sig_user_defined(t, signr) \ | 153 | #define sig_user_defined(t, signr) \ |
151 | (((t)->sighand->action[(signr)-1].sa.sa_handler != SIG_DFL) && \ | 154 | (((t)->sighand->action[(signr)-1].sa.sa_handler != SIG_DFL) && \ |
152 | ((t)->sighand->action[(signr)-1].sa.sa_handler != SIG_IGN)) | 155 | ((t)->sighand->action[(signr)-1].sa.sa_handler != SIG_IGN)) |
@@ -1199,7 +1202,7 @@ kill_proc_info(int sig, struct siginfo *info, pid_t pid) | |||
1199 | struct task_struct *p; | 1202 | struct task_struct *p; |
1200 | 1203 | ||
1201 | rcu_read_lock(); | 1204 | rcu_read_lock(); |
1202 | if (unlikely(sig_kernel_stop(sig) || sig == SIGCONT)) { | 1205 | if (unlikely(sig_needs_tasklist(sig))) { |
1203 | read_lock(&tasklist_lock); | 1206 | read_lock(&tasklist_lock); |
1204 | acquired_tasklist_lock = 1; | 1207 | acquired_tasklist_lock = 1; |
1205 | } | 1208 | } |