aboutsummaryrefslogtreecommitdiffstats
path: root/kernel/trace
diff options
context:
space:
mode:
authorPeter Zijlstra <peterz@infradead.org>2020-03-18 14:22:03 +0100
committerThomas Gleixner <tglx@linutronix.de>2020-05-19 15:47:21 +0200
commitc86e9b987cea3dd0209203e714553a47f5d7c6dd (patch)
tree482f9f9344ca9854ab99444ba49dad7fb2df86bf /kernel/trace
parenttracing: Provide lockdep less trace_hardirqs_on/off() variants (diff)
downloadlinux-dev-c86e9b987cea3dd0209203e714553a47f5d7c6dd.tar.xz
linux-dev-c86e9b987cea3dd0209203e714553a47f5d7c6dd.zip
lockdep: Prepare for noinstr sections
Force inlining and prevent instrumentation of all sorts by marking the functions which are invoked from low level entry code with 'noinstr'. Split the irqflags tracking into two parts. One which does the heavy lifting while RCU is watching and the final one which can be invoked after RCU is turned off. Signed-off-by: Peter Zijlstra <peterz@infradead.org> Signed-off-by: Thomas Gleixner <tglx@linutronix.de> Reviewed-by: Alexandre Chartre <alexandre.chartre@oracle.com> Link: https://lkml.kernel.org/r/20200505134100.484532537@linutronix.de
Diffstat (limited to 'kernel/trace')
-rw-r--r--kernel/trace/trace_preemptirq.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/kernel/trace/trace_preemptirq.c b/kernel/trace/trace_preemptirq.c
index c00880162b06..fb0691b8a88d 100644
--- a/kernel/trace/trace_preemptirq.c
+++ b/kernel/trace/trace_preemptirq.c
@@ -46,6 +46,7 @@ void trace_hardirqs_on(void)
this_cpu_write(tracing_irq_cpu, 0);
}
+ lockdep_hardirqs_on_prepare(CALLER_ADDR0);
lockdep_hardirqs_on(CALLER_ADDR0);
}
EXPORT_SYMBOL(trace_hardirqs_on);
@@ -93,6 +94,7 @@ __visible void trace_hardirqs_on_caller(unsigned long caller_addr)
this_cpu_write(tracing_irq_cpu, 0);
}
+ lockdep_hardirqs_on_prepare(CALLER_ADDR0);
lockdep_hardirqs_on(CALLER_ADDR0);
}
EXPORT_SYMBOL(trace_hardirqs_on_caller);