iwlwifi: unregister to upper stack before releasing resources
authorRon Rindjunsky <ron.rindjunsky@intel.com>
Fri, 28 Mar 2008 23:21:10 +0000 (16:21 -0700)
committerJohn W. Linville <linville@tuxdriver.com>
Tue, 1 Apr 2008 21:13:19 +0000 (17:13 -0400)
This patch fixes an early release of driver's resources before upper stack
was notified that low-level driver shuts down.

Signed-off-by: Ron Rindjunsky <ron.rindjunsky@intel.com>
Signed-off-by: Tomas Winkler <tomas.winkler@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
drivers/net/wireless/iwlwifi/iwl4965-base.c

index ae4e53f5bedd362675d3de3b3d9eef8e0293d940..e98695f7f14cea576707d5e4f19b8ec837c91048 100644 (file)
@@ -8207,6 +8207,11 @@ static void __devexit iwl4965_pci_remove(struct pci_dev *pdev)
 
        IWL_DEBUG_INFO("*** UNLOAD DRIVER ***\n");
 
+       if (priv->mac80211_registered) {
+               ieee80211_unregister_hw(priv->hw);
+               priv->mac80211_registered = 0;
+       }
+
        set_bit(STATUS_EXIT_PENDING, &priv->status);
 
        iwl4965_down(priv);
@@ -8241,9 +8246,6 @@ static void __devexit iwl4965_pci_remove(struct pci_dev *pdev)
        iwl4965_unset_hw_setting(priv);
        iwlcore_clear_stations_table(priv);
 
-       if (priv->mac80211_registered) {
-               ieee80211_unregister_hw(priv->hw);
-       }
 
        /*netif_stop_queue(dev); */
        flush_workqueue(priv->workqueue);