[PATCH 1/2] signals: collect_signal: remove the unneeded sigismember() check

From: Oleg Nesterov
Date: Sat May 17 2008 - 11:13:36 EST


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@xxxxxxxxxx>

--- 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.

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/