summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/iwlwifi/pcie
diff options
context:
space:
mode:
authorEmmanuel Grumbach <emmanuel.grumbach@intel.com>2013-09-11 14:16:20 +0300
committerJohannes Berg <johannes.berg@intel.com>2013-10-11 09:56:57 +0200
commit42550a53db232383ffe8d0c7d0ae9e72e2ca986b (patch)
tree26fc37a8330b355cba69bf2004cd9aa87e3956d4 /drivers/net/wireless/iwlwifi/pcie
parentd1d5e3cda07fc8ddc6c9dc768eca50c17d675abc (diff)
downloadop-kernel-dev-42550a53db232383ffe8d0c7d0ae9e72e2ca986b.zip
op-kernel-dev-42550a53db232383ffe8d0c7d0ae9e72e2ca986b.tar.gz
iwlwifi: pcie: restart the driver when a command times out
This should really not happen. If it does, restarting is the only way to recover since the driver and the firmware might very well be out of sync. Moreover, iwl_op_mode_nic_error will print data that might help debugging. Signed-off-by: Emmanuel Grumbach <emmanuel.grumbach@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/iwlwifi/pcie')
-rw-r--r--drivers/net/wireless/iwlwifi/pcie/tx.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/net/wireless/iwlwifi/pcie/tx.c b/drivers/net/wireless/iwlwifi/pcie/tx.c
index a70a30e..b416841 100644
--- a/drivers/net/wireless/iwlwifi/pcie/tx.c
+++ b/drivers/net/wireless/iwlwifi/pcie/tx.c
@@ -1529,7 +1529,6 @@ static int iwl_pcie_send_hcmd_sync(struct iwl_trans *trans,
"Error sending %s: time out after %dms.\n",
get_cmd_string(trans_pcie, cmd->id),
jiffies_to_msecs(HOST_COMPLETE_TIMEOUT));
- dump_stack();
IWL_ERR(trans,
"Current CMD queue read_ptr %d write_ptr %d\n",
@@ -1540,6 +1539,9 @@ static int iwl_pcie_send_hcmd_sync(struct iwl_trans *trans,
"Clearing HCMD_ACTIVE for command %s\n",
get_cmd_string(trans_pcie, cmd->id));
ret = -ETIMEDOUT;
+
+ iwl_op_mode_nic_error(trans->op_mode);
+
goto cancel;
}
}
OpenPOWER on IntegriCloud