diff options
author | Oleg Nesterov <oleg@tv-sign.ru> | 2008-07-25 01:47:31 -0700 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-25 10:53:38 -0700 |
commit | 2b201a9eddf509e8e935b45e573648e36f4b623f (patch) | |
tree | 84cbb34667bcde5566e5c3d127c9089bb9792dab /kernel/signal.c | |
parent | 92413d771e7123304fb4b9efd2a00cccc946e383 (diff) | |
download | lwn-2b201a9eddf509e8e935b45e573648e36f4b623f.tar.gz lwn-2b201a9eddf509e8e935b45e573648e36f4b623f.zip |
signals: do_signal_stop: kill the SIGNAL_UNKILLABLE check
fae5fa44f1fd079ffbed8e0add929dd7bbd1347f changed do_signal_stop() to check
SIGNAL_UNKILLABLE, this wasn't needed. If signal_group_exit() == F, the
signal sent to SIGNAL_UNKILLABLE task must be already filtered out by the
caller, get_signal_to_deliver(). And if signal_group_exit() == T we are
not going to stop.
Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
Acked-by: Roland McGrath <roland@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'kernel/signal.c')
-rw-r--r-- | kernel/signal.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/kernel/signal.c b/kernel/signal.c index 15f901a26ec7..0514da573f22 100644 --- a/kernel/signal.c +++ b/kernel/signal.c @@ -1649,8 +1649,7 @@ static int do_signal_stop(int signr) } else { struct task_struct *t; - if (unlikely((sig->flags & (SIGNAL_STOP_DEQUEUED | SIGNAL_UNKILLABLE)) - != SIGNAL_STOP_DEQUEUED) || + if (!likely(sig->flags & SIGNAL_STOP_DEQUEUED) || unlikely(signal_group_exit(sig))) return 0; /* |