Re: [PATCH net] net: macb: init workqueues before register_netdev()
From: Théo Lebrun
Date: Fri Sep 25 2026 - 09:58:35 EST
On Fri Sep 25, 2026 at 3:42 PM CEST, Nicolai Buchwitz wrote:
> On 25.9.2026 15:15, Théo Lebrun wrote:
>> register_netdev() exposes the interface to userspace which might
>> trigger
>> operations like close on it. Those access the HRESP/LPI tasks and
>> might therefore use them uninitialised.
>>
>> Fix this race by initialising both `struct work_struct` before
>> register_netdev().
>>
>> Theoretical bugfix. The main reason for fix is to avoid future Sashiko
>> reports which triggers if we grow the race condition (by touching those
>> workqueues at open for example). The likeliness of this bug sounds
>> tiny, but I've not spent any time trying to reproduce it.
>>
>> Fixes: c5092ba3155e ("net: macb: Convert tasklet API to new bottom half
>> workqueue mechanism")
>
> IMHO the "bug" was introduced in 032dc41ba6e2? But this would generate
> more
> backporting without any real use. So let's keep it as is.
I used this command to find the introduction of hresp_err_bh_work and
didn't notice it was only a tasklet to workqueue conversion patch.
You are correct.
git log --oneline -Shresp_err_bh_work drivers/net/ethernet/cadence/
> Reviewed-by: Nicolai Buchwitz <nb@xxxxxxxxxxx>
Thanks!
--
Théo Lebrun, Bootlin
Embedded Linux and Kernel engineering
https://bootlin.com