Re: [PATCH] mac80211: fix race in ieee80211_register_hw()

From: Johannes Berg
Date: Mon Apr 06 2020 - 08:48:00 EST


On Mon, 2020-04-06 at 15:44 +0300, Kalle Valo wrote:
>
> > user-space ieee80211_register_hw() RX IRQ
> > +++++++++++++++++++++++++++++++++++++++++++++
> > | | |
> > |<---wlan0---wiphy_register() |
> > |----start wlan0---->| |
> > | |<---IRQ---(RX packet)
> > | Kernel crash |
> > | due to unallocated |
> > | workqueue. |

[snip]

> I have understood that no frames should be received until mac80211 calls
> struct ieee80211_ops::start:
>
> * @start: Called before the first netdevice attached to the hardware
> * is enabled. This should turn on the hardware and must turn on
> * frame reception (for possibly enabled monitor interfaces.)

True, but I think he's saying that you can actually add and configure an
interface as soon as the wiphy is registered?

The "wlan0" is kinda wrong there, should be "phy0" I guess, and then
interface added from iw?

johannes