Thread (29 messages) 29 messages, 3 authors, 2014-02-26

Re: [PATCH 01/14] brcmfmac: add delay before unregistering the network device

From: Arend van Spriel <hidden>
Date: 2014-02-26 09:28:31

On 02/26/2014 10:17 AM, Johannes Berg wrote:
On Wed, 2014-02-26 at 10:07 +0100, Arend van Spriel wrote:
quoted
On 02/25/2014 08:59 PM, Johannes Berg wrote:
quoted
On Tue, 2014-02-25 at 20:30 +0100, Arend van Spriel wrote:
quoted
Upon deleting the interface a cfg80211_disconnected() is called under
rtnl_lock. Right after the unlocking the rtnl_lock we unregister the
network device. This patch adds delay before unregister so cfg80211
can handle disconnect and notify wpa_supplicant.
quoted
+				/* make sure cfg80211 can send disconnect event
+				 * before unregistering the netdevice below.
+				 */
+				msleep(100);
This has got to be one of the worst hacks I've seen in wireless so
far ... :)
Did you see I removed a sleep as well in this patch :-p
Yeah, I did :-)
quoted
I just don't see how I can assure cfg80211 has actually done the
disconnect work. If we don't do a cfg80211_disconnected() I get a WARN
from the cfg80211 netdev notifier (or at least I did in previous kernel).

Should we consider a clean solution, ie. modify cfg80211 for this scenario?
Yes. Can't we just flush the work at some strategic place?

Actually you're not talking about the "disconnect_work" (which is
related to regulatory) but the "event_work" so I was confused here for a
second.

What was the warning? cfg80211 already calls
cfg80211_process_wdev_events() from within the REMOVE netdev notifier,
so that *shouldn't* have happened.
I guess that means some wdev event is missing? It was the
WARN_ON(current->bss) that fired.

Gr. AvS
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help