diff options
Diffstat (limited to 'kernel/trace/trace_stack.c')
| -rw-r--r-- | kernel/trace/trace_stack.c | 15 |
1 files changed, 0 insertions, 15 deletions
diff --git a/kernel/trace/trace_stack.c b/kernel/trace/trace_stack.c index a4df67cbc711..49cb41412eec 100644 --- a/kernel/trace/trace_stack.c +++ b/kernel/trace/trace_stack.c | |||
| @@ -96,23 +96,9 @@ check_stack(unsigned long ip, unsigned long *stack) | |||
| 96 | if (in_nmi()) | 96 | if (in_nmi()) |
| 97 | return; | 97 | return; |
| 98 | 98 | ||
| 99 | /* | ||
| 100 | * There's a slight chance that we are tracing inside the | ||
| 101 | * RCU infrastructure, and rcu_irq_enter() will not work | ||
| 102 | * as expected. | ||
| 103 | */ | ||
| 104 | if (unlikely(rcu_irq_enter_disabled())) | ||
| 105 | return; | ||
| 106 | |||
| 107 | local_irq_save(flags); | 99 | local_irq_save(flags); |
| 108 | arch_spin_lock(&stack_trace_max_lock); | 100 | arch_spin_lock(&stack_trace_max_lock); |
| 109 | 101 | ||
| 110 | /* | ||
| 111 | * RCU may not be watching, make it see us. | ||
| 112 | * The stack trace code uses rcu_sched. | ||
| 113 | */ | ||
| 114 | rcu_irq_enter(); | ||
| 115 | |||
| 116 | /* In case another CPU set the tracer_frame on us */ | 102 | /* In case another CPU set the tracer_frame on us */ |
| 117 | if (unlikely(!frame_size)) | 103 | if (unlikely(!frame_size)) |
| 118 | this_size -= tracer_frame; | 104 | this_size -= tracer_frame; |
| @@ -205,7 +191,6 @@ check_stack(unsigned long ip, unsigned long *stack) | |||
| 205 | } | 191 | } |
| 206 | 192 | ||
| 207 | out: | 193 | out: |
| 208 | rcu_irq_exit(); | ||
| 209 | arch_spin_unlock(&stack_trace_max_lock); | 194 | arch_spin_unlock(&stack_trace_max_lock); |
| 210 | local_irq_restore(flags); | 195 | local_irq_restore(flags); |
| 211 | } | 196 | } |
