Explorar o código

iwlwifi: mvm: flush fw_dump_wk when mvm fails to start

FW dump may be triggered when running init ucode, for example due to a
sysassert. In this case fw_dump_wk may run after mvm is freed, resulting
in a kernel panic.
Fix it by flushing the work.

Fixes: 01b988a708af ("iwlwifi: mvm: allow to collect debug data when restart is disabled")
Cc: <stable@vger.kernel.org> [3.18+]
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Signed-off-by: Luca Coelho <luciano.coelho@intel.com>
Andrei Otcheretianski %!s(int64=10) %!d(string=hai) anos
pai
achega
dbf73d4a8b
Modificáronse 1 ficheiros con 1 adicións e 0 borrados
  1. 1 0
      drivers/net/wireless/iwlwifi/mvm/ops.c

+ 1 - 0
drivers/net/wireless/iwlwifi/mvm/ops.c

@@ -590,6 +590,7 @@ iwl_op_mode_mvm_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
 	ieee80211_unregister_hw(mvm->hw);
 	ieee80211_unregister_hw(mvm->hw);
 	iwl_mvm_leds_exit(mvm);
 	iwl_mvm_leds_exit(mvm);
  out_free:
  out_free:
+	flush_delayed_work(&mvm->fw_dump_wk);
 	iwl_phy_db_free(mvm->phy_db);
 	iwl_phy_db_free(mvm->phy_db);
 	kfree(mvm->scan_cmd);
 	kfree(mvm->scan_cmd);
 	if (!cfg->no_power_up_nic_in_init || !mvm->nvm_file_name)
 	if (!cfg->no_power_up_nic_in_init || !mvm->nvm_file_name)