|
@@ -6246,8 +6246,6 @@ static void __iwl_down(struct iwl_priv *priv)
|
|
|
/* Unblock any waiting calls */
|
|
|
wake_up_interruptible_all(&priv->wait_command_queue);
|
|
|
|
|
|
- iwl_cancel_deferred_work(priv);
|
|
|
-
|
|
|
/* Wipe out the EXIT_PENDING status bit if we are not actually
|
|
|
* exiting the module */
|
|
|
if (!exit_pending)
|
|
@@ -6322,6 +6320,8 @@ static void iwl_down(struct iwl_priv *priv)
|
|
|
mutex_lock(&priv->mutex);
|
|
|
__iwl_down(priv);
|
|
|
mutex_unlock(&priv->mutex);
|
|
|
+
|
|
|
+ iwl_cancel_deferred_work(priv);
|
|
|
}
|
|
|
|
|
|
#define MAX_HW_RESTARTS 5
|
|
@@ -8580,10 +8580,9 @@ static void iwl_pci_remove(struct pci_dev *pdev)
|
|
|
|
|
|
IWL_DEBUG_INFO("*** UNLOAD DRIVER ***\n");
|
|
|
|
|
|
- mutex_lock(&priv->mutex);
|
|
|
set_bit(STATUS_EXIT_PENDING, &priv->status);
|
|
|
- __iwl_down(priv);
|
|
|
- mutex_unlock(&priv->mutex);
|
|
|
+
|
|
|
+ iwl_down(priv);
|
|
|
|
|
|
/* Free MAC hash list for ADHOC */
|
|
|
for (i = 0; i < IWL_IBSS_MAC_HASH_SIZE; i++) {
|
|
@@ -8642,12 +8641,10 @@ static int iwl_pci_suspend(struct pci_dev *pdev, pm_message_t state)
|
|
|
{
|
|
|
struct iwl_priv *priv = pci_get_drvdata(pdev);
|
|
|
|
|
|
- mutex_lock(&priv->mutex);
|
|
|
-
|
|
|
set_bit(STATUS_IN_SUSPEND, &priv->status);
|
|
|
|
|
|
/* Take down the device; powers it off, etc. */
|
|
|
- __iwl_down(priv);
|
|
|
+ iwl_down(priv);
|
|
|
|
|
|
if (priv->mac80211_registered)
|
|
|
ieee80211_stop_queues(priv->hw);
|
|
@@ -8656,8 +8653,6 @@ static int iwl_pci_suspend(struct pci_dev *pdev, pm_message_t state)
|
|
|
pci_disable_device(pdev);
|
|
|
pci_set_power_state(pdev, PCI_D3hot);
|
|
|
|
|
|
- mutex_unlock(&priv->mutex);
|
|
|
-
|
|
|
return 0;
|
|
|
}
|
|
|
|
|
@@ -8715,8 +8710,6 @@ static int iwl_pci_resume(struct pci_dev *pdev)
|
|
|
|
|
|
printk(KERN_INFO "Coming out of suspend...\n");
|
|
|
|
|
|
- mutex_lock(&priv->mutex);
|
|
|
-
|
|
|
pci_set_power_state(pdev, PCI_D0);
|
|
|
err = pci_enable_device(pdev);
|
|
|
pci_restore_state(pdev);
|
|
@@ -8730,7 +8723,6 @@ static int iwl_pci_resume(struct pci_dev *pdev)
|
|
|
pci_write_config_byte(pdev, 0x41, 0x00);
|
|
|
|
|
|
iwl_resume(priv);
|
|
|
- mutex_unlock(&priv->mutex);
|
|
|
|
|
|
return 0;
|
|
|
}
|