Duh. This was a really stupid bug.

In kernel/signal.c, collect_signal(), for the case where we don't find a
siginfo block, we need to clear the signal set.

In short, add the line

        sigdelset(&list->signal, sig);

just before the first "return 1" in collect_signal(), and all should be
well (famous last words - it's untested, but I'm sure that's it).

If I'm right, the kernel didn't properly crash, but it would send the
signal on and on again forever, which would basically kill the machine if
something like init or X or a number of other important cases got stuck
doing nothing.

                Linus

-
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to [EMAIL PROTECTED]
Please read the FAQ at http://www.tux.org/lkml/

Reply via email to