wifi: iwlwifi: mvm: Return success if link could not be removed
authorBenjamin Berg <benjamin.berg@intel.com>
Tue, 17 Oct 2023 09:16:45 +0000 (12:16 +0300)
committerJohannes Berg <johannes.berg@intel.com>
Mon, 23 Oct 2023 10:48:29 +0000 (12:48 +0200)
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>
drivers/net/wireless/intel/iwlwifi/mvm/link.c

index c3831440a01987b563dbbb64a80b9041b5ffec96..be48b0fc9cb66cad4d0514f4758169fe0a42a32f 100644 (file)
@@ -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);