signals, debug: fix BUG: using smp_processor_id() in preemptible code in print_fatal_...
authorEd Swierk <eswierk@aristanetworks.com>
Mon, 26 Jan 2009 23:33:31 +0000 (15:33 -0800)
committerIngo Molnar <mingo@elte.hu>
Mon, 26 Jan 2009 23:36:19 +0000 (00:36 +0100)
commit3a9f84d354ce1e19956083c8e691727dea33bd5a
treeabe8c280d3adb7a8e5fc838c59b122a46e6fd464
parentbf50c903faba4ec7686ee8a570ac384b0f20814d
signals, debug: fix BUG: using smp_processor_id() in preemptible code in print_fatal_signal()

With print-fatal-signals=1 on a kernel with CONFIG_PREEMPT=y, sending an
unexpected signal to a process causes a BUG: using smp_processor_id() in
preemptible code.

get_signal_to_deliver() releases the siglock before calling
print_fatal_signal(), which calls show_regs(), which calls
smp_processor_id(), which is not supposed to be called from a
preemptible thread.

Make sure show_regs() runs with preemption disabled.

Signed-off-by: Ed Swierk <eswierk@aristanetworks.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
kernel/signal.c