netpoll: raspberrypi [4 5] driver locking woes

From: Mike Galbraith
Date: Mon Aug 25 2025 - 01:54:02 EST


Greetings,

After meeting some netconsole+ieee80211 woes recently, I decided to
build a lockdep enabled 6.17-rc2 kernel for my rpi[45] and give it a go
on their wired nics just to make sure there were no surprises lurking..
but damn the bad luck, both cute/dinky boxen whimpered.

The pi5 met locking woes due to...

138badbc21a0 net: macb: use NAPI for TX completion path

...injecting spin_lock/unlock_irq() into polling, which inspired
netpoll.c to point a finger directly at the driver. A quick poke
didn't produce instant gratification, but a wedged in revert did.

On the pi4, lockdep muttered about ring->lock in bcmgenet_xmit() and
bcmgenet_tx_poll() - switching to irqsave/restore spinlock variants
there silenced it.

Note to readers: before turning on lockdep, perhaps consider whacking
lockdep_assert_held() instances in gpiolib.c.. ymmv, but here it would
have saved time and naughty language expenditure.

-Mike