OSDN Git Service

mwifiex: don't short-circuit netdev notifiers on interface deletion
authorBrian Norris <briannorris@chromium.org>
Tue, 25 Jul 2017 01:13:22 +0000 (18:13 -0700)
committerKalle Valo <kvalo@codeaurora.org>
Fri, 28 Jul 2017 14:47:47 +0000 (17:47 +0300)
When we leave the delete interface function, there are still netdev
hooks that might try to process the device. We're short-circuiting some
of that by changing the interface type and clearing ieee80211_ptr. This
means we skip NETDEV_UNREGISTER_FINAL in cfg80211. Fortunately, that is
currently a no-op.

We don't need most of the cleanup here anyway:

 * the connection state will get (un)set as part of the disconnect
   process (which cfg80211 already initiates for us)
 * the interface type doesn't actually need to be cleared at all (it'll
   trigger a WARN_ON() in cfg80211 if we do)
 * the iee80211_ptr isn't really "ours" to clear anyway

So stop resetting those 3 things.

Signed-off-by: Brian Norris <briannorris@chromium.org>
Signed-off-by: Kalle Valo <kvalo@codeaurora.org>
drivers/net/wireless/marvell/mwifiex/cfg80211.c

index fdfdf23..2be7817 100644 (file)
@@ -3123,11 +3123,7 @@ int mwifiex_del_virtual_intf(struct wiphy *wiphy, struct wireless_dev *wdev)
                priv->dfs_chan_sw_workqueue = NULL;
        }
        /* Clear the priv in adapter */
-       priv->netdev->ieee80211_ptr = NULL;
        priv->netdev = NULL;
-       priv->wdev.iftype = NL80211_IFTYPE_UNSPECIFIED;
-
-       priv->media_connected = false;
 
        switch (priv->bss_mode) {
        case NL80211_IFTYPE_UNSPECIFIED: