Commit 5568b139f4d196273958ae2947a736fdf1ffeece
Committed by
Thomas Gleixner
1 parent
f43fdad862
Exists in
master
and in
7 other branches
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: Steven Rostedt <srostedt@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu> Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Showing 1 changed file with 2 additions and 2 deletions Side-by-side Diff
lib/smp_processor_id.c
... | ... | @@ -37,7 +37,7 @@ |
37 | 37 | /* |
38 | 38 | * Avoid recursion: |
39 | 39 | */ |
40 | - preempt_disable(); | |
40 | + preempt_disable_notrace(); | |
41 | 41 | |
42 | 42 | if (!printk_ratelimit()) |
43 | 43 | goto out_enable; |
... | ... | @@ -49,7 +49,7 @@ |
49 | 49 | dump_stack(); |
50 | 50 | |
51 | 51 | out_enable: |
52 | - preempt_enable_no_resched(); | |
52 | + preempt_enable_no_resched_notrace(); | |
53 | 53 | out: |
54 | 54 | return this_cpu; |
55 | 55 | } |