aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMiri Korenblit <[email protected]>2025-04-30 12:23:17 +0000
committerMiri Korenblit <[email protected]>2025-05-06 17:23:10 +0000
commitf5f6b9d9a4959d19fefb4c48ef66de25571f22c3 (patch)
treee91854a73fc29d8748ad4bc9e86a95d7ba1ab7fd
parentwifi: iwlwifi: mld: check for NULL before referencing a pointer (diff)
downloadkernel-f5f6b9d9a4959d19fefb4c48ef66de25571f22c3.tar.gz
kernel-f5f6b9d9a4959d19fefb4c48ef66de25571f22c3.zip
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 <[email protected]> Reviewed-by: Johannes Berg <[email protected]> Link: https://patch.msgid.link/20250430151952.c549c72b1f37.I445bf723e9befc9541b4abd0ec7c72db8f1ff177@changeid
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mld/mac80211.c12
1 files changed, 9 insertions, 3 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
index 284599abf8c6..6710dcacecd3 100644
--- a/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
+++ b/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c
@@ -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 @@ remove_added_links:
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,