On Fri, Dec 18, 2020 at 04:37:16PM +0100, Peter Zijlstra wrote: > On Fri, Dec 18, 2020 at 04:33:56PM +0100, Heiko Carstens wrote: > > > Peter, will you make proper patch out of this? > > Yes, let me go do that now, and stick it in the quilt series before I go > off and don't think for 2 weeks.
As below, I'll try and push it out to tip/locking/urgent before I really dissapear. --- Subject: softirq: Avoid bad tracing / lockdep interaction From: Peter Zijlstra <[email protected]> Date: Fri Dec 18 16:39:14 CET 2020 Similar to commit: 1a63dcd8765b ("softirq: Reorder trace_softirqs_on to prevent lockdep splat") __local_bh_enable_ip() can also call into tracing with inconsistent state. Unlike that commit we don't need to bother about the tracepoint because 'cnt-1' never matches preempt_count() (by construction). Reported-by: Heiko Carstens <[email protected]> Signed-off-by: Peter Zijlstra (Intel) <[email protected]> Tested-by: Heiko Carstens <[email protected]> --- kernel/softirq.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) --- a/kernel/softirq.c +++ b/kernel/softirq.c @@ -186,7 +186,7 @@ void __local_bh_enable_ip(unsigned long * Keep preemption disabled until we are done with * softirq processing: */ - preempt_count_sub(cnt - 1); + __preempt_count_sub(cnt - 1); if (unlikely(!in_interrupt() && local_softirq_pending())) { /*

