Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 3a9f84d3 authored by Ed Swierk's avatar Ed Swierk Committed by Ingo Molnar
Browse files

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: default avatarEd Swierk <eswierk@aristanetworks.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
parent bf50c903
Loading
Loading
Loading
Loading
+2 −0
Original line number Diff line number Diff line
@@ -909,7 +909,9 @@ static void print_fatal_signal(struct pt_regs *regs, int signr)
	}
#endif
	printk("\n");
	preempt_disable();
	show_regs(regs);
	preempt_enable();
}

static int __init setup_print_fatal_signals(char *str)