diff options
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mld/link.c | 19 | ||||
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mld/link.h | 4 | ||||
-rw-r--r-- | drivers/net/wireless/intel/iwlwifi/mld/mac80211.c | 9 |
3 files changed, 12 insertions, 20 deletions
diff --git a/drivers/net/wireless/intel/iwlwifi/mld/link.c b/drivers/net/wireless/intel/iwlwifi/mld/link.c index 6db8b5305349..82a4979a3af3 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/link.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/link.c @@ -455,7 +455,7 @@ void iwl_mld_deactivate_link(struct iwl_mld *mld, mld_link->fw_id); } -static int +static void iwl_mld_rm_link_from_fw(struct iwl_mld *mld, struct ieee80211_bss_conf *link) { struct iwl_mld_link *mld_link = iwl_mld_link_from_mac80211(link); @@ -464,13 +464,13 @@ iwl_mld_rm_link_from_fw(struct iwl_mld *mld, struct ieee80211_bss_conf *link) lockdep_assert_wiphy(mld->wiphy); if (WARN_ON(!mld_link)) - return -EINVAL; + return; cmd.link_id = cpu_to_le32(mld_link->fw_id); cmd.spec_link_id = link->link_id; cmd.phy_id = cpu_to_le32(FW_CTXT_ID_INVALID); - return iwl_mld_send_link_cmd(mld, &cmd, FW_CTXT_ACTION_REMOVE); + iwl_mld_send_link_cmd(mld, &cmd, FW_CTXT_ACTION_REMOVE); } static void iwl_mld_omi_bw_update(struct iwl_mld *mld, @@ -832,18 +832,17 @@ free: } /* Remove link from fw, unmap the bss_conf, and destroy the link structure */ -int iwl_mld_remove_link(struct iwl_mld *mld, - struct ieee80211_bss_conf *bss_conf) +void iwl_mld_remove_link(struct iwl_mld *mld, + struct ieee80211_bss_conf *bss_conf) { struct iwl_mld_vif *mld_vif = iwl_mld_vif_from_mac80211(bss_conf->vif); struct iwl_mld_link *link = iwl_mld_link_from_mac80211(bss_conf); bool is_deflink = link == &mld_vif->deflink; - int ret; if (WARN_ON(!link || link->active)) - return -EINVAL; + return; - ret = iwl_mld_rm_link_from_fw(mld, bss_conf); + iwl_mld_rm_link_from_fw(mld, bss_conf); /* Continue cleanup on failure */ if (!is_deflink) @@ -854,11 +853,9 @@ int iwl_mld_remove_link(struct iwl_mld *mld, wiphy_delayed_work_cancel(mld->wiphy, &link->rx_omi.finished_work); if (WARN_ON(link->fw_id >= mld->fw->ucode_capa.num_links)) - return -EINVAL; + return; RCU_INIT_POINTER(mld->fw_id_to_bss_conf[link->fw_id], NULL); - - return ret; } void iwl_mld_handle_missed_beacon_notif(struct iwl_mld *mld, diff --git a/drivers/net/wireless/intel/iwlwifi/mld/link.h b/drivers/net/wireless/intel/iwlwifi/mld/link.h index 3a4f3ac990d7..42b7bdcbd741 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/link.h +++ b/drivers/net/wireless/intel/iwlwifi/mld/link.h @@ -114,8 +114,8 @@ iwl_mld_cleanup_link(struct iwl_mld *mld, struct iwl_mld_link *link) int iwl_mld_add_link(struct iwl_mld *mld, struct ieee80211_bss_conf *bss_conf); -int iwl_mld_remove_link(struct iwl_mld *mld, - struct ieee80211_bss_conf *bss_conf); +void iwl_mld_remove_link(struct iwl_mld *mld, + struct ieee80211_bss_conf *bss_conf); int iwl_mld_activate_link(struct iwl_mld *mld, struct ieee80211_bss_conf *link); void iwl_mld_deactivate_link(struct iwl_mld *mld, diff --git a/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c b/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c index 938cf5900a29..6851064b82da 100644 --- a/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c +++ b/drivers/net/wireless/intel/iwlwifi/mld/mac80211.c @@ -2456,13 +2456,8 @@ iwl_mld_change_vif_links(struct ieee80211_hw *hw, added |= BIT(0); for (int i = 0; i < IEEE80211_MLD_MAX_NUM_LINKS; i++) { - if (removed & BIT(i)) { - link_conf = old[i]; - - err = iwl_mld_remove_link(mld, link_conf); - if (err) - return err; - } + if (removed & BIT(i)) + iwl_mld_remove_link(mld, old[i]); } for (int i = 0; i < IEEE80211_MLD_MAX_NUM_LINKS; i++) { |