iwlwifi: pcie: cancel Tx timer upon firmware crash
When the firmware crashes, we can't expect the Tx queues to progress. Cancel their timer. Reviewed-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com>
This commit is contained in:
parent
5bf12f6096
commit
1103323ca1
1 changed files with 4 additions and 0 deletions
|
@ -1014,6 +1014,7 @@ restart:
|
||||||
static void iwl_pcie_irq_handle_error(struct iwl_trans *trans)
|
static void iwl_pcie_irq_handle_error(struct iwl_trans *trans)
|
||||||
{
|
{
|
||||||
struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
|
struct iwl_trans_pcie *trans_pcie = IWL_TRANS_GET_PCIE_TRANS(trans);
|
||||||
|
int i;
|
||||||
|
|
||||||
/* W/A for WiFi/WiMAX coex and WiMAX own the RF */
|
/* W/A for WiFi/WiMAX coex and WiMAX own the RF */
|
||||||
if (trans->cfg->internal_wimax_coex &&
|
if (trans->cfg->internal_wimax_coex &&
|
||||||
|
@ -1037,6 +1038,9 @@ static void iwl_pcie_irq_handle_error(struct iwl_trans *trans)
|
||||||
iwl_trans_fw_error(trans);
|
iwl_trans_fw_error(trans);
|
||||||
local_bh_enable();
|
local_bh_enable();
|
||||||
|
|
||||||
|
for (i = 0; i < trans->cfg->base_params->num_of_queues; i++)
|
||||||
|
del_timer(&trans_pcie->txq[i].stuck_timer);
|
||||||
|
|
||||||
clear_bit(STATUS_SYNC_HCMD_ACTIVE, &trans->status);
|
clear_bit(STATUS_SYNC_HCMD_ACTIVE, &trans->status);
|
||||||
wake_up(&trans_pcie->wait_command_queue);
|
wake_up(&trans_pcie->wait_command_queue);
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue