On Wed, 2014-02-26 at 10:07 +0100, Arend van Spriel wrote: > On 02/25/2014 08:59 PM, Johannes Berg wrote: > > On Tue, 2014-02-25 at 20:30 +0100, Arend van Spriel wrote: > >> 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. > > > >> + /* 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 :-) > 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. johannes -- To unsubscribe from this list: send the line "unsubscribe linux-wireless" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html