summaryrefslogtreecommitdiffstats
path: root/drivers/net/wireless/intel/iwlwifi/mvm/link.c
diff options
context:
space:
mode:
authorBenjamin Berg <benjamin.berg@intel.com>2023-10-17 12:16:45 +0300
committerJohannes Berg <johannes.berg@intel.com>2023-10-23 12:48:29 +0200
commitac139aa3483c2a20adfd78d950def062820aece1 (patch)
treeb5de13589f991dfa3a17eacca098f80b6f090148 /drivers/net/wireless/intel/iwlwifi/mvm/link.c
parente25bd1853cc8308158d97e5b3696ea3689fa0840 (diff)
downloadlinux-stable-ac139aa3483c2a20adfd78d950def062820aece1.tar.gz
linux-stable-ac139aa3483c2a20adfd78d950def062820aece1.tar.bz2
linux-stable-ac139aa3483c2a20adfd78d950def062820aece1.zip
wifi: iwlwifi: mvm: Return success if link could not be removed
iwl_mvm_remove_link would return an error if the link could not be removed. However, doing so prevents recovery if a link was not uploaded to the FW in the first place and the link_info was not allocated or fw_link_id is not set. Returning success means that we can still try to continue with adding new links in change_vif_links. Signed-off-by: Benjamin Berg <benjamin.berg@intel.com> Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Link: https://lore.kernel.org/r/20231017115047.f89bc05aadf6.Idc8fbd671362d962c02b1df87fa6258733631580@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'drivers/net/wireless/intel/iwlwifi/mvm/link.c')
-rw-r--r--drivers/net/wireless/intel/iwlwifi/mvm/link.c3
1 files changed, 2 insertions, 1 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mvm/link.c b/drivers/net/wireless/intel/iwlwifi/mvm/link.c
index c3831440a019..be48b0fc9cb6 100644
--- a/drivers/net/wireless/intel/iwlwifi/mvm/link.c
+++ b/drivers/net/wireless/intel/iwlwifi/mvm/link.c
@@ -242,9 +242,10 @@ int iwl_mvm_remove_link(struct iwl_mvm *mvm, struct ieee80211_vif *vif,
struct iwl_link_config_cmd cmd = {};
int ret;
+ /* mac80211 thought we have the link, but it was never configured */
if (WARN_ON(!link_info ||
link_info->fw_link_id >= ARRAY_SIZE(mvm->link_id_to_link_conf)))
- return -EINVAL;
+ return 0;
RCU_INIT_POINTER(mvm->link_id_to_link_conf[link_info->fw_link_id],
NULL);