|
@@ -2764,6 +2764,11 @@ static void __iwl_down(struct iwl_priv *priv)
|
|
if (!exit_pending)
|
|
if (!exit_pending)
|
|
set_bit(STATUS_EXIT_PENDING, &priv->status);
|
|
set_bit(STATUS_EXIT_PENDING, &priv->status);
|
|
|
|
|
|
|
|
+ /* Stop TX queues watchdog. We need to have STATUS_EXIT_PENDING bit set
|
|
|
|
+ * to prevent rearm timer */
|
|
|
|
+ if (priv->cfg->ops->lib->recover_from_tx_stall)
|
|
|
|
+ del_timer_sync(&priv->monitor_recover);
|
|
|
|
+
|
|
iwl_clear_ucode_stations(priv);
|
|
iwl_clear_ucode_stations(priv);
|
|
iwl_dealloc_bcast_station(priv);
|
|
iwl_dealloc_bcast_station(priv);
|
|
iwl_clear_driver_stations(priv);
|
|
iwl_clear_driver_stations(priv);
|
|
@@ -3870,8 +3875,6 @@ static void iwl_cancel_deferred_work(struct iwl_priv *priv)
|
|
cancel_work_sync(&priv->beacon_update);
|
|
cancel_work_sync(&priv->beacon_update);
|
|
del_timer_sync(&priv->statistics_periodic);
|
|
del_timer_sync(&priv->statistics_periodic);
|
|
del_timer_sync(&priv->ucode_trace);
|
|
del_timer_sync(&priv->ucode_trace);
|
|
- if (priv->cfg->ops->lib->recover_from_tx_stall)
|
|
|
|
- del_timer_sync(&priv->monitor_recover);
|
|
|
|
}
|
|
}
|
|
|
|
|
|
static void iwl_init_hw_rates(struct iwl_priv *priv,
|
|
static void iwl_init_hw_rates(struct iwl_priv *priv,
|