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

Commit 5568b139 authored by Steven Rostedt's avatar Steven Rostedt Committed by Thomas Gleixner
Browse files

ftrace: debug smp_processor_id, use notrace preempt disable



The debug smp_processor_id caused a recursive fault in debugging
the irqsoff tracer. The tracer used a smp_processor_id in the
ftrace callback, and this function called preempt_disable which
also is traced. This caused a recursive fault (stack overload).

Since using smp_processor_id without debugging on does not cause
faults with the tracer (even when the tracer is wrong), the
debug version should not cause a system reboot.

This changes the debug_smp_processor_id to use the notrace versions
of preempt_disable and enable.

Signed-off-by: default avatarSteven Rostedt <srostedt@redhat.com>
Signed-off-by: default avatarIngo Molnar <mingo@elte.hu>
Signed-off-by: default avatarThomas Gleixner <tglx@linutronix.de>
parent f43fdad8
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -37,7 +37,7 @@ notrace unsigned int debug_smp_processor_id(void)
	/*
	 * Avoid recursion:
	 */
	preempt_disable();
	preempt_disable_notrace();

	if (!printk_ratelimit())
		goto out_enable;
@@ -49,7 +49,7 @@ notrace unsigned int debug_smp_processor_id(void)
	dump_stack();

out_enable:
	preempt_enable_no_resched();
	preempt_enable_no_resched_notrace();
out:
	return this_cpu;
}