Commit 73ac74c7 authored by Sven Schnelle's avatar Sven Schnelle Committed by Vasily Gorbik

lockdep: fix order in trace_hardirqs_off_caller()

Switch order so that locking state is consistent even
if the IRQ tracer calls into lockdep again.
Acked-by: default avatarPeter Zijlstra <peterz@infradead.org>
Signed-off-by: default avatarSven Schnelle <svens@linux.ibm.com>
Signed-off-by: default avatarVasily Gorbik <gor@linux.ibm.com>
parent afdf9550
...@@ -102,14 +102,14 @@ NOKPROBE_SYMBOL(trace_hardirqs_on_caller); ...@@ -102,14 +102,14 @@ NOKPROBE_SYMBOL(trace_hardirqs_on_caller);
__visible void trace_hardirqs_off_caller(unsigned long caller_addr) __visible void trace_hardirqs_off_caller(unsigned long caller_addr)
{ {
lockdep_hardirqs_off(CALLER_ADDR0);
if (!this_cpu_read(tracing_irq_cpu)) { if (!this_cpu_read(tracing_irq_cpu)) {
this_cpu_write(tracing_irq_cpu, 1); this_cpu_write(tracing_irq_cpu, 1);
tracer_hardirqs_off(CALLER_ADDR0, caller_addr); tracer_hardirqs_off(CALLER_ADDR0, caller_addr);
if (!in_nmi()) if (!in_nmi())
trace_irq_disable_rcuidle(CALLER_ADDR0, caller_addr); trace_irq_disable_rcuidle(CALLER_ADDR0, caller_addr);
} }
lockdep_hardirqs_off(CALLER_ADDR0);
} }
EXPORT_SYMBOL(trace_hardirqs_off_caller); EXPORT_SYMBOL(trace_hardirqs_off_caller);
NOKPROBE_SYMBOL(trace_hardirqs_off_caller); NOKPROBE_SYMBOL(trace_hardirqs_off_caller);
......
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