wifi: mac80211_hwsim: skip inactive links on TX
authorJohannes Berg <johannes.berg@intel.com>
Fri, 2 Sep 2022 14:12:44 +0000 (16:12 +0200)
committerJohannes Berg <johannes.berg@intel.com>
Tue, 6 Sep 2022 08:13:52 +0000 (10:13 +0200)
With the link activation handling in mac80211, skip
any inactive links on TX.

Signed-off-by: Johannes Berg <johannes.berg@intel.com>
drivers/net/wireless/mac80211_hwsim.c

index ed3b1c84d5472524f21aec1ab7b871a5eacaa8e7..b02865deca9c2770fe352e89b38ef2b01688d508 100644 (file)
@@ -1734,6 +1734,9 @@ mac80211_hwsim_select_tx_link(struct mac80211_hwsim_data *data,
                /* round-robin the available link IDs */
                link_id = (sp->last_link + i + 1) % ARRAY_SIZE(vif->link_conf);
 
+               if (!(vif->active_links & BIT(link_id)))
+                       continue;
+
                *link_sta = rcu_dereference(sta->link[link_id]);
                if (!*link_sta)
                        continue;
@@ -1742,6 +1745,10 @@ mac80211_hwsim_select_tx_link(struct mac80211_hwsim_data *data,
                if (WARN_ON_ONCE(!bss_conf))
                        continue;
 
+               /* can happen while switching links */
+               if (!rcu_access_pointer(bss_conf->chanctx_conf))
+                       continue;
+
                sp->last_link = link_id;
                return bss_conf;
        }