|
@@ -4372,15 +4372,18 @@ static void __devexit iwl4965_pci_remove(struct pci_dev *pdev)
|
|
iwl_dbgfs_unregister(priv);
|
|
iwl_dbgfs_unregister(priv);
|
|
sysfs_remove_group(&pdev->dev.kobj, &iwl4965_attribute_group);
|
|
sysfs_remove_group(&pdev->dev.kobj, &iwl4965_attribute_group);
|
|
|
|
|
|
|
|
+ /* ieee80211_unregister_hw call wil cause iwl4965_mac_stop to
|
|
|
|
+ * to be called and iwl4965_down since we are removing the device
|
|
|
|
+ * we need to set STATUS_EXIT_PENDING bit.
|
|
|
|
+ */
|
|
|
|
+ set_bit(STATUS_EXIT_PENDING, &priv->status);
|
|
if (priv->mac80211_registered) {
|
|
if (priv->mac80211_registered) {
|
|
ieee80211_unregister_hw(priv->hw);
|
|
ieee80211_unregister_hw(priv->hw);
|
|
priv->mac80211_registered = 0;
|
|
priv->mac80211_registered = 0;
|
|
|
|
+ } else {
|
|
|
|
+ iwl4965_down(priv);
|
|
}
|
|
}
|
|
|
|
|
|
- set_bit(STATUS_EXIT_PENDING, &priv->status);
|
|
|
|
-
|
|
|
|
- iwl4965_down(priv);
|
|
|
|
-
|
|
|
|
/* make sure we flush any pending irq or
|
|
/* make sure we flush any pending irq or
|
|
* tasklet for the driver
|
|
* tasklet for the driver
|
|
*/
|
|
*/
|