Commit 699b760b authored by Luca Coelho's avatar Luca Coelho

iwlwifi: dbg: don't abort if sending DBGC_SUSPEND_RESUME fails

If the firmware is in a bad state or not initialized fully, sending
the DBGC_SUSPEND_RESUME command fails but we can still collect logs.

Instead of aborting the entire dump process, simply ignore the error.
By removing the last callpoint that was checking the return value, we
can also convert the function to return void.
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
Fixes: 57605833 ("iwlwifi: dbg: support debug recording suspend resume command")
Signed-off-by: default avatarLuca Coelho <luciano.coelho@intel.com>
Link: https://lore.kernel.org/r/iwlwifi.20200306151129.dcec37b2efd4.I8dcd190431d110a6a0e88095ce93591ccfb3d78d@changeid
parent a5688e60
...@@ -2490,10 +2490,7 @@ static void iwl_fw_dbg_collect_sync(struct iwl_fw_runtime *fwrt, u8 wk_idx) ...@@ -2490,10 +2490,7 @@ static void iwl_fw_dbg_collect_sync(struct iwl_fw_runtime *fwrt, u8 wk_idx)
goto out; goto out;
} }
if (iwl_fw_dbg_stop_restart_recording(fwrt, &params, true)) { iwl_fw_dbg_stop_restart_recording(fwrt, &params, true);
IWL_ERR(fwrt, "Failed to stop DBGC recording, aborting dump\n");
goto out;
}
IWL_DEBUG_FW_INFO(fwrt, "WRT: Data collection start\n"); IWL_DEBUG_FW_INFO(fwrt, "WRT: Data collection start\n");
if (iwl_trans_dbg_ini_valid(fwrt->trans)) if (iwl_trans_dbg_ini_valid(fwrt->trans))
...@@ -2658,14 +2655,14 @@ static int iwl_fw_dbg_restart_recording(struct iwl_trans *trans, ...@@ -2658,14 +2655,14 @@ static int iwl_fw_dbg_restart_recording(struct iwl_trans *trans,
return 0; return 0;
} }
int iwl_fw_dbg_stop_restart_recording(struct iwl_fw_runtime *fwrt, void iwl_fw_dbg_stop_restart_recording(struct iwl_fw_runtime *fwrt,
struct iwl_fw_dbg_params *params, struct iwl_fw_dbg_params *params,
bool stop) bool stop)
{ {
int ret = 0; int ret = 0;
if (test_bit(STATUS_FW_ERROR, &fwrt->trans->status)) if (test_bit(STATUS_FW_ERROR, &fwrt->trans->status))
return 0; return;
if (fw_has_capa(&fwrt->fw->ucode_capa, if (fw_has_capa(&fwrt->fw->ucode_capa,
IWL_UCODE_TLV_CAPA_DBG_SUSPEND_RESUME_CMD_SUPP)) IWL_UCODE_TLV_CAPA_DBG_SUSPEND_RESUME_CMD_SUPP))
...@@ -2682,7 +2679,5 @@ int iwl_fw_dbg_stop_restart_recording(struct iwl_fw_runtime *fwrt, ...@@ -2682,7 +2679,5 @@ int iwl_fw_dbg_stop_restart_recording(struct iwl_fw_runtime *fwrt,
iwl_fw_set_dbg_rec_on(fwrt); iwl_fw_set_dbg_rec_on(fwrt);
} }
#endif #endif
return ret;
} }
IWL_EXPORT_SYMBOL(iwl_fw_dbg_stop_restart_recording); IWL_EXPORT_SYMBOL(iwl_fw_dbg_stop_restart_recording);
...@@ -239,9 +239,9 @@ _iwl_fw_dbg_trigger_simple_stop(struct iwl_fw_runtime *fwrt, ...@@ -239,9 +239,9 @@ _iwl_fw_dbg_trigger_simple_stop(struct iwl_fw_runtime *fwrt,
_iwl_fw_dbg_trigger_simple_stop((fwrt), (wdev), \ _iwl_fw_dbg_trigger_simple_stop((fwrt), (wdev), \
iwl_fw_dbg_get_trigger((fwrt)->fw,\ iwl_fw_dbg_get_trigger((fwrt)->fw,\
(trig))) (trig)))
int iwl_fw_dbg_stop_restart_recording(struct iwl_fw_runtime *fwrt, void iwl_fw_dbg_stop_restart_recording(struct iwl_fw_runtime *fwrt,
struct iwl_fw_dbg_params *params, struct iwl_fw_dbg_params *params,
bool stop); bool stop);
#ifdef CONFIG_IWLWIFI_DEBUGFS #ifdef CONFIG_IWLWIFI_DEBUGFS
static inline void iwl_fw_set_dbg_rec_on(struct iwl_fw_runtime *fwrt) static inline void iwl_fw_set_dbg_rec_on(struct iwl_fw_runtime *fwrt)
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment