On Mon, 2012-04-23 at 13:47 +0300, Eliad Peller wrote: > ieee80211_mgd_teardown() is called on netdev removal, which > occurs after the vif was already removed from the low-level > driver, resulting in the following warning: > Fix it by calling ieee80211_mgd_teardown() on ieee80211_do_stop(). Would you rename it to mgd_stop() as well maybe? The "teardown" name is pretty specific here. > +++ b/net/mac80211/iface.c > @@ -649,6 +649,8 @@ static void ieee80211_do_stop(struct ieee80211_sub_if_data *sdata, > if (sdata->vif.type == NL80211_IFTYPE_MESH_POINT) > ieee80211_bss_info_change_notify(sdata, > BSS_CHANGED_BEACON_ENABLED); > + else if (sdata->vif.type == NL80211_IFTYPE_STATION) > + ieee80211_mgd_teardown(sdata); Could there be a case where the teardown could start a work item? It might be better to make this part of the switch, and fall through to flush_work() etc.? 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