diff options
author | Oleg Nesterov <oleg@tv-sign.ru> | 2008-07-25 04:47:31 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-07-25 13:53:38 -0400 |
commit | 2b201a9eddf509e8e935b45e573648e36f4b623f (patch) | |
tree | 84cbb34667bcde5566e5c3d127c9089bb9792dab | |
parent | 92413d771e7123304fb4b9efd2a00cccc946e383 (diff) |
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>
-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) | |||
1649 | } else { | 1649 | } else { |
1650 | struct task_struct *t; | 1650 | struct task_struct *t; |
1651 | 1651 | ||
1652 | if (unlikely((sig->flags & (SIGNAL_STOP_DEQUEUED | SIGNAL_UNKILLABLE)) | 1652 | if (!likely(sig->flags & SIGNAL_STOP_DEQUEUED) || |
1653 | != SIGNAL_STOP_DEQUEUED) || | ||
1654 | unlikely(signal_group_exit(sig))) | 1653 | unlikely(signal_group_exit(sig))) |
1655 | return 0; | 1654 | return 0; |
1656 | /* | 1655 | /* |