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 | } |