wifi: iwlwifi: mld: don't return an error if the FW is dead

If iwl_mld_change_vif_links failed to add the requested link(s)
because the FW is dead (error before recovery), there is no point
in returning an error value, as the reconfig will re-add the link(s)
after the FW is started.
Return 0 in that case, and WARN in the others.

Signed-off-by: Miri Korenblit <miriam.rachel.korenblit@intel.com>
Reviewed-by: Johannes Berg <johannes.berg@intel.com>
Link: https://patch.msgid.link/20250430151952.c549c72b1f37.I445bf723e9befc9541b4abd0ec7c72db8f1ff177@changeid
This commit is contained in:
Miri Korenblit
2025-04-30 15:23:17 +03:00
parent f9151f16e1
commit f5f6b9d9a4

View File

@@ -2457,8 +2457,10 @@ iwl_mld_change_vif_links(struct ieee80211_hw *hw,
for (int i = 0; i < IEEE80211_MLD_MAX_NUM_LINKS; i++) {
if (added & BIT(i)) {
link_conf = link_conf_dereference_protected(vif, i);
if (WARN_ON(!link_conf))
return -EINVAL;
if (!link_conf) {
err = -EINVAL;
goto remove_added_links;
}
err = iwl_mld_add_link(mld, link_conf);
if (err)
@@ -2493,7 +2495,11 @@ iwl_mld_change_vif_links(struct ieee80211_hw *hw,
iwl_mld_remove_link(mld, link_conf);
}
return err;
if (WARN_ON(!iwl_mld_error_before_recovery(mld)))
return err;
/* reconfig will fix us anyway */
return 0;
}
static int iwl_mld_change_sta_links(struct ieee80211_hw *hw,