diff options
| author | Miri Korenblit <[email protected]> | 2025-04-30 12:23:17 +0000 |
|---|---|---|
| committer | Miri Korenblit <[email protected]> | 2025-05-06 17:23:10 +0000 |
| commit | f5f6b9d9a4959d19fefb4c48ef66de25571f22c3 (patch) | |
| tree | e91854a73fc29d8748ad4bc9e86a95d7ba1ab7fd | |
| parent | wifi: iwlwifi: mld: check for NULL before referencing a pointer (diff) | |
| download | kernel-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.c | 12 |
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, |
