[BUG] lockdep-reported deadlock with expiry_lock in 4.19.59-rt24 with CONFIG_PREEMPT_RT=n. In about one in seven to ten boots, lockdep reports a deadlock of the form [ 19.245929] WARNING: inconsistent lock state [ 19.250200] 4.19.59-rt24 #1 Not tainted [ 19.254040] -------------------------------- [ 19.258311] inconsistent {IN-SOFTIRQ-W} -> {SOFTIRQ-ON-W} usage. [ 19.264319] rcu_preempt/13 [HC0[0]:SC0[0]:HE1:SE1] takes: [ 19.269710] ... (&(&base->expiry_lock)->rlock){+.?.}, at: del_timer_sync+0xaa/0x100 ... [ 19.391803] lock(&(&base->expiry_lock)->rlock); [ 19.396507] [ 19.399134] lock(&(&base->expiry_lock)->rlock); [ 19.404014] *** DEADLOCK *** This splat happens with a 4.19.59-rt24 kernel, using the attached .config. This .config turns off rt, has a bunch of debug options enabled, and has enough drivers declared static for me to be able to boot this kernel without an initrd. Today, most people would not be affected by this as those that apply the rt patch typically also turn rt on. The current effort to mainstream rt, however, means that the use of nort with the rt patch applied will become common, and at that time this problem will become significant. (nitpick, maybe relevent detail: I am booting with RHEL8 userland.) Regards, Joe