summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorIlan Peer <ilan.peer@intel.com>2023-05-16 00:56:50 +0300
committeriwlwifi publisher <>2023-05-23 09:02:04 +0000
commit9a903160fe234f8dde48cd90d09cc11be4845b49 (patch)
tree4447b9b45f102fdfccc53db289f36fe8e21822b1
parent0ee38e84d415c4d2e46248957eb1deb1968fc8d2 (diff)
downloadbackport-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.c8
-rw-r--r--versions2
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:
diff --git a/versions b/versions
index a5ceaf28f2..28b284eaa5 100644
--- a/versions
+++ b/versions
@@ -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"