From: Jan Kiszka <jan.kis...@siemens.com> Lost in d7fc2c06edc9 ("lockdep: ipipe: exclude the head stage from IRQ state tracing") but still needed by x86 at least.
Signed-off-by: Jan Kiszka <jan.kis...@siemens.com> --- kernel/trace/trace_preemptirq.c | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/kernel/trace/trace_preemptirq.c b/kernel/trace/trace_preemptirq.c index 3c482c02c1d9..19605695a6a2 100644 --- a/kernel/trace/trace_preemptirq.c +++ b/kernel/trace/trace_preemptirq.c @@ -66,6 +66,17 @@ __visible void trace_hardirqs_on_caller(unsigned long caller_addr) } EXPORT_SYMBOL(trace_hardirqs_on_caller); +__visible void trace_hardirqs_on_virt_caller(unsigned long ip) +{ + /* + * The IRQ tracing logic only applies to the root domain, and + * must consider the virtual disable flag exclusively when + * leaving an interrupt/fault context. + */ + if (ipipe_root_p && !irqs_disabled()) + trace_hardirqs_on_caller(ip); +} + __visible void trace_hardirqs_on_virt(void) { /* -- 2.16.4