From 05164a8564bacb11ed74b2826b27f8bded606a12 Mon Sep 17 00:00:00 2001 From: Rameshkumar Sundaram Date: Wed, 1 Feb 2023 11:46:02 +0530 Subject: [PATCH] UPSTREAM: wifi: cfg80211: Allow action frames to be transmitted with link BSS in MLD Currently action frames TX only with ML address as A3(BSSID) are allowed in an ML AP, but TX for a non-ML Station can happen in any link of an ML BSS with link BSS address as A3. In case of an MLD, if User-space has provided a valid link_id in action frame TX request, allow transmission of the frame in that link. Signed-off-by: Rameshkumar Sundaram Link: https://lore.kernel.org/r/20230201061602.3918-1-quic_ramess@quicinc.com Signed-off-by: Johannes Berg Bug: 272227555 Change-Id: Iceb00b0713d9123f040e10e06cbfc412ee6a0375 (cherry picked from commit 19085ef39fa3dd27fa76d1c86dd448403101dcf7) Signed-off-by: Shivani Baranwal Signed-off-by: Veerendranath Jakkam --- net/wireless/mlme.c | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/net/wireless/mlme.c b/net/wireless/mlme.c index 7149dfbed51e..3f0631a209df 100644 --- a/net/wireless/mlme.c +++ b/net/wireless/mlme.c @@ -740,7 +740,10 @@ int cfg80211_mlme_mgmt_tx(struct cfg80211_registered_device *rdev, case NL80211_IFTYPE_AP: case NL80211_IFTYPE_P2P_GO: case NL80211_IFTYPE_AP_VLAN: - if (!ether_addr_equal(mgmt->bssid, wdev_address(wdev))) + if (!ether_addr_equal(mgmt->bssid, wdev_address(wdev)) && + (params->link_id < 0 || + !ether_addr_equal(mgmt->bssid, + wdev->links[params->link_id].addr))) err = -EINVAL; break; case NL80211_IFTYPE_MESH_POINT: