lockdep: Fix lockdep recursion
authorPeter Zijlstra <peterz@infradead.org>
Fri, 2 Oct 2020 09:04:21 +0000 (11:04 +0200)
committerIngo Molnar <mingo@kernel.org>
Fri, 9 Oct 2020 06:53:30 +0000 (08:53 +0200)
commit4d004099a668c41522242aa146a38cc4eb59cb1e
tree9a8023c8fdbe431b9edbbcb2621dbf5c6bb4367b
parent2bb8945bcc1a768f2bc402a16c9610bba8d5187d
lockdep: Fix lockdep recursion

Steve reported that lockdep_assert*irq*(), when nested inside lockdep
itself, will trigger a false-positive.

One example is the stack-trace code, as called from inside lockdep,
triggering tracing, which in turn calls RCU, which then uses
lockdep_assert_irqs_disabled().

Fixes: a21ee6055c30 ("lockdep: Change hardirq{s_enabled,_context} to per-cpu variables")
Reported-by: Steven Rostedt <rostedt@goodmis.org>
Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
Signed-off-by: Ingo Molnar <mingo@kernel.org>
include/linux/lockdep.h
kernel/locking/lockdep.c