On Tue, 2021-03-16 at 19:29 +0000, Abhishek Kumar wrote: > If BSS instance is not provided in __cfg80211_connect_result then > a get bss is performed. This can return NULL if the BSS for the > given SSID is expired due to delayed scheduling of connect result event > in rdev->event_work. This can cause WARN_ON(!cr->bss) in > __cfg80211_connect_result to be triggered and cause cascading > failures. To mitigate this, initiate a get bss call in > cfg80211_connect_done itself and hold it to ensure that the BSS > instance does not get expired. I'm not sure I see the value in this. You're basically picking a slightly earlier point in time where cfg80211 might know about the BSS entry still, so you're really just making the problem window a few microseconds or perhaps milliseconds (whatever ends up being the worker delay) shorter. Compared to the 30s entry lifetime, that's nothing. So what's the point? Please fix the driver instead to actually hold on to it and report it back. johannes