diff options
author | Johannes Berg <johannes.berg@intel.com> | 2022-09-02 16:12:44 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2022-09-06 10:13:52 +0200 |
commit | 6521ee74636d11cc895ccc2ba845de7969a30221 (patch) | |
tree | 1426a0ca7008c416b6cda5213d462bbb317e36a8 | |
parent | wifi: mac80211: add ieee80211_find_sta_by_link_addrs API (diff) | |
download | linux-dev-6521ee74636d11cc895ccc2ba845de7969a30221.tar.xz linux-dev-6521ee74636d11cc895ccc2ba845de7969a30221.zip |
wifi: mac80211_hwsim: skip inactive links on TX
With the link activation handling in mac80211, skip
any inactive links on TX.
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
-rw-r--r-- | drivers/net/wireless/mac80211_hwsim.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/net/wireless/mac80211_hwsim.c b/drivers/net/wireless/mac80211_hwsim.c index ed3b1c84d547..b02865deca9c 100644 --- a/drivers/net/wireless/mac80211_hwsim.c +++ b/drivers/net/wireless/mac80211_hwsim.c @@ -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; } |