Re: "Dead loop on virtual device" error without softirq-BKL on PREEMPT_RT

From: Sebastian Andrzej Siewior

Date: Mon Feb 16 2026 - 10:42:14 EST


On 2026-02-16 16:32:29 [+0100], Bert Karwatzki wrote:
> Am Montag, dem 16.02.2026 um 14:43 +0100 schrieb Bert Karwatzki:
> > Starting with linux-6.18, I see the following log messages
> >
> > 2026-02-15T23:50:17.558716+01:00 [ T1559] Dead loop on virtual device wlp4s0, fix it urgently!
> > 2026-02-15T23:50:17.558737+01:00 [ T1559] Dead loop on virtual device wlp4s0, fix it urgently!
> > [...]
> >
> > regarding my wireless network device
> >
> > 04:00.0 Network controller [0280]: MEDIATEK Corp. MT7921K (RZ608) Wi-Fi 6E 80MHz [14c3:0608]
> >
> > I bisected this (from v6.17 to v6.18) and got this as the first bad commit:
> > 3253cb49cbad ("softirq: Allow to drop the softirq-BKL lock on PREEMPT_RT")
> >
> > Using CONFIG_PREEMPT_RT_NEEDS_BH_LOCK=y in v6.18.10 fixes the issue.
> >
> > Bert Karwatzki
>
> May I presume that to fix this properly at least some of the spin_lock_bh()s in
> net/mac80211/ need to be converted to local_lock_nested_bh()s?

I am not sure what issue is so I can't tell. The dev_xmit_recursion*()
based counters are per-task so it should be fine. But yet the wifi
managed to repeatedly enqueue packets. This might be a real recursion, a
stack trace should tell. And then, somewhere synchronisation is missing.

> Bert Karwatzki

Sebastian