Messages in this thread Patch in this message | | | Date | Sat, 17 May 2008 19:14:24 +0400 | From | Oleg Nesterov <> | Subject | [PATCH 1/2] signals: collect_signal: remove the unneeded sigismember() check |
| |
collect_signal() checks sigismember(&list->signal, sig), this is not needed. This "sig" was just found by next_signal(), so it must be valid.
We have a (completely broken) call to ->notifier in between, but it must not play with sigpending->signal bits or unlock ->siglock.
Signed-off-by: Oleg Nesterov <oleg@tv-sign.ru>
--- 25/kernel/signal.c~7_CS_NO_CHECK 2008-05-17 18:07:10.000000000 +0400 +++ 25/kernel/signal.c 2008-05-17 18:41:28.000000000 +0400 @@ -309,9 +309,6 @@ static int collect_signal(int sig, struc struct sigqueue *q, *first = NULL; int still_pending = 0; - if (unlikely(!sigismember(&list->signal, sig))) - return 0; - /* * Collect the siginfo appropriate to this signal. Check if * there is another siginfo for the same signal.
| |