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

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
...@@ -37,7 +37,7 @@ notrace unsigned int debug_smp_processor_id(void) ...@@ -37,7 +37,7 @@ notrace unsigned int debug_smp_processor_id(void)
/* /*
* Avoid recursion: * Avoid recursion:
*/ */
preempt_disable(); preempt_disable_notrace();
if (!printk_ratelimit()) if (!printk_ratelimit())
goto out_enable; goto out_enable;
...@@ -49,7 +49,7 @@ notrace unsigned int debug_smp_processor_id(void) ...@@ -49,7 +49,7 @@ notrace unsigned int debug_smp_processor_id(void)
dump_stack(); dump_stack();
out_enable: out_enable:
preempt_enable_no_resched(); preempt_enable_no_resched_notrace();
out: out:
return this_cpu; return this_cpu;
} }
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment