mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 12:11:40 +00:00
wifi: mac80211: Consider MLO links in offchannel logic
Check all the MLO links to decide whether offchannel TX is needed. Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
This commit is contained in:
parent
892b3bceb0
commit
54283409cd
@ -842,10 +842,24 @@ int ieee80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev,
|
||||
|
||||
/* Check if the operating channel is the requested channel */
|
||||
if (!need_offchan) {
|
||||
struct ieee80211_chanctx_conf *chanctx_conf;
|
||||
struct ieee80211_chanctx_conf *chanctx_conf = NULL;
|
||||
int i;
|
||||
|
||||
rcu_read_lock();
|
||||
chanctx_conf = rcu_dereference(sdata->vif.bss_conf.chanctx_conf);
|
||||
/* Check all the links first */
|
||||
for (i = 0; i < ARRAY_SIZE(sdata->vif.link_conf); i++) {
|
||||
if (!sdata->vif.link_conf[i])
|
||||
continue;
|
||||
|
||||
chanctx_conf = rcu_dereference(sdata->vif.link_conf[i]->chanctx_conf);
|
||||
if (!chanctx_conf)
|
||||
continue;
|
||||
|
||||
if (ether_addr_equal(sdata->vif.link_conf[i]->addr, mgmt->sa))
|
||||
break;
|
||||
|
||||
chanctx_conf = NULL;
|
||||
}
|
||||
|
||||
if (chanctx_conf) {
|
||||
need_offchan = params->chan &&
|
||||
|
Loading…
Reference in New Issue
Block a user