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/