@@ -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 @@ int iwl_mld_add_link(struct iwl_mld *mld,
}
/* 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,
@@ -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,
@@ -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++) {