]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
wifi: iwlwifi: mld: don't do iwl_trans_stop_device twice
authorMiri Korenblit <miriam.rachel.korenblit@intel.com>
Wed, 23 Apr 2025 06:16:35 +0000 (09:16 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Wed, 23 Apr 2025 13:37:39 +0000 (15:37 +0200)
If iwl_mld_load_fw failed, we call iwl_mld_stop_fw which does, among the
others, iwl_trans_stop_device. But this is already called from
iwl_mld_load_fw's error path.

Since we do need the other stuff of iwl_mld_stop_fw to be done also in
the error path of iwl_mld_load_fw, just call it there.

This also makes the call to iwl_fw_flush_dumps in
iwl_mld_op_mope_start redundant, since it is the same as iwl_fw_dbg_stop_sync.

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Reviewed-by: Daniel Gabay <daniel.gabay@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Link: https://patch.msgid.link/20250423091408.f7d86be570d3.Ied68f0c4d126b3b0f1ffd9990bbc43d97f098e24@changeid
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/intel/iwlwifi/mld/fw.c
drivers/net/wireless/intel/iwlwifi/mld/mld.c

index 511df49672b556ed5ba238e6b31fd4c2aebe1091..76bf8354940792d7ca2b4abcdbf77c72f3f64d81 100644 (file)
@@ -327,7 +327,7 @@ int iwl_mld_load_fw(struct iwl_mld *mld)
 
        return 0;
 err:
-       iwl_trans_stop_device(mld->trans);
+       iwl_mld_stop_fw(mld);
        return ret;
 }
 
@@ -502,7 +502,7 @@ int iwl_mld_start_fw(struct iwl_mld *mld)
        ret = iwl_mld_load_fw(mld);
        if (IWL_FW_CHECK(mld, ret, "Failed to start firmware %d\n", ret)) {
                iwl_fw_dbg_error_collect(&mld->fwrt, FW_DBG_TRIGGER_DRIVER);
-               goto error;
+               return ret;
        }
 
        IWL_DEBUG_INFO(mld, "uCode started.\n");
index 8d788af8dcc871aa65cefc6c71025c40f9e2dc00..2f5b6dc8bc624d4c98dccde8babe664a30779651 100644 (file)
@@ -425,7 +425,6 @@ iwl_op_mode_mld_start(struct iwl_trans *trans, const struct iwl_cfg *cfg,
        if (ret) {
                wiphy_unlock(mld->wiphy);
                rtnl_unlock();
-               iwl_fw_flush_dumps(&mld->fwrt);
                goto free_hw;
        }