Release resource before shutting down and notify upper stack.
Signed-off-by: Abhijeet Kolekar <abhijeet.kolekar@intel.com>
Signed-off-by: Zhu Yi <yi.zhu@intel.com>
Signed-off-by: John W. Linville <linville@tuxdriver.com>
 
        set_bit(STATUS_EXIT_PENDING, &priv->status);
 
-       iwl3945_down(priv);
+       if (priv->mac80211_registered) {
+               ieee80211_unregister_hw(priv->hw);
+               priv->mac80211_registered = 0;
+       } else {
+               iwl3945_down(priv);
+       }
 
        /* make sure we flush any pending irq or
         * tasklet for the driver
        iwl3945_unset_hw_params(priv);
        iwl3945_clear_stations_table(priv);
 
-       if (priv->mac80211_registered)
-               ieee80211_unregister_hw(priv->hw);
-
        /*netif_stop_queue(dev); */
        flush_workqueue(priv->workqueue);