diff options
author | Ilan Peer <ilan.peer@intel.com> | 2023-05-16 00:56:50 +0300 |
---|---|---|
committer | iwlwifi publisher <> | 2023-05-23 09:02:04 +0000 |
commit | 9a903160fe234f8dde48cd90d09cc11be4845b49 (patch) | |
tree | 4447b9b45f102fdfccc53db289f36fe8e21822b1 | |
parent | 0ee38e84d415c4d2e46248957eb1deb1968fc8d2 (diff) | |
download | backport-iwlwifi-9a903160fe234f8dde48cd90d09cc11be4845b49.tar.gz |
wifi: mac80211: Do not force off-channel for management Tx with MLO
When user space transmits a management frame it is expected to use
the MLD addresses if the connection is an MLD one. Thus, in case
the management Tx is using the MLD address and no channel is configured
off-channel should not be used (as one of the active links would be used).
type=feature
ticket=jira:WIFI-308480
Change-Id: Ie4b0a842debb24ef25c5e6cb2ad69b9f46bc4b2a
Signed-off-by: Ilan Peer <ilan.peer@intel.com>
Reviewed-on: https://gerritwcs.ir.intel.com/c/iwlwifi-stack-dev/+/55661
Reviewed-by: Greenman, Gregory <gregory.greenman@intel.com>
Reviewed-by: Berg, Johannes <johannes.berg@intel.com>
tested: iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM>
automatic-review: iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM>
Tested-by: iil_jenkins <EC.GER.UNIX.IIL.JENKINS@INTEL.COM>
x-iwlwifi-stack-dev: 537024667bb6948a9ed5120aad31f4fac6386bdd
-rw-r--r-- | net/mac80211/offchannel.c | 8 | ||||
-rw-r--r-- | versions | 2 |
2 files changed, 8 insertions, 2 deletions
diff --git a/net/mac80211/offchannel.c b/net/mac80211/offchannel.c index 9105709dc3..27afa993de 100644 --- a/net/mac80211/offchannel.c +++ b/net/mac80211/offchannel.c @@ -837,8 +837,14 @@ int ieee80211_mgmt_tx(struct wiphy *wiphy, struct wireless_dev *wdev, if (!sdata->u.mgd.associated || (params->offchan && params->wait && local->ops->remain_on_channel && - memcmp(sdata->vif.cfg.ap_addr, mgmt->bssid, ETH_ALEN))) + memcmp(sdata->vif.cfg.ap_addr, mgmt->bssid, ETH_ALEN))) { need_offchan = true; + } else if (sdata->u.mgd.associated && + ether_addr_equal(sdata->vif.cfg.ap_addr, mgmt->da)) { + sta = sta_info_get_bss(sdata, mgmt->da); + mlo_sta = sta && sta->sta.mlo; + } + sdata_unlock(sdata); break; case NL80211_IFTYPE_P2P_DEVICE: @@ -2,4 +2,4 @@ BACKPORTS_VERSION="(see git)" BACKPORTED_KERNEL_VERSION="(see git)" BACKPORTED_KERNEL_NAME="iwlwifi" BACKPORTS_BUILD_TSTAMP=__DATE__ \" \" __TIME__ -BACKPORTS_GIT_TRACKED="iwlwifi-stack-public:master:11211:7f3a219b" +BACKPORTS_GIT_TRACKED="iwlwifi-stack-public:master:11212:53702466" |