Commit e36de1de authored by Steven Rostedt's avatar Steven Rostedt Committed by Steven Rostedt

tracing: Fix preemptirqsoff tracer to not stop at preempt off

If irqs are disabled when preemption count reaches zero, the
preemptirqsoff tracer should not flag that as the end.

When interrupts are enabled and preemption count is not zero
the preemptirqsoff correctly continues its tracing.
Signed-off-by: default avatarSteven Rostedt <rostedt@goodmis.org>
parent 6249687f
...@@ -505,13 +505,13 @@ EXPORT_SYMBOL(trace_hardirqs_off_caller); ...@@ -505,13 +505,13 @@ EXPORT_SYMBOL(trace_hardirqs_off_caller);
#ifdef CONFIG_PREEMPT_TRACER #ifdef CONFIG_PREEMPT_TRACER
void trace_preempt_on(unsigned long a0, unsigned long a1) void trace_preempt_on(unsigned long a0, unsigned long a1)
{ {
if (preempt_trace()) if (preempt_trace() && !irq_trace())
stop_critical_timing(a0, a1); stop_critical_timing(a0, a1);
} }
void trace_preempt_off(unsigned long a0, unsigned long a1) void trace_preempt_off(unsigned long a0, unsigned long a1)
{ {
if (preempt_trace()) if (preempt_trace() && !irq_trace())
start_critical_timing(a0, a1); start_critical_timing(a0, a1);
} }
#endif /* CONFIG_PREEMPT_TRACER */ #endif /* CONFIG_PREEMPT_TRACER */
......
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