summaryrefslogtreecommitdiff
path: root/net/mac80211/ht.c
diff options
context:
space:
mode:
authorIlan Peer <ilan.peer@intel.com>2023-08-28 15:09:25 +0200
committerJohannes Berg <johannes.berg@intel.com>2023-09-11 11:27:18 +0200
commite665ab9c5aab79e1c576a220013419ef215c3b6a (patch)
tree30f880bedaa6b5e94e376d0c9c4379db0c8cf68b /net/mac80211/ht.c
parentf498f6ab7adb461a68e13ea6d4443cb3636f2d93 (diff)
wifi: mac80211: Fix SMPS handling in the context of MLO
When the connection is a MLO connection, a SMPS request should be sent on a specific link, as SMPS is BSS specific, and the DA and BSSID used for the action frame transmission should be the AP MLD address, as the underlying driver is expected to perform the address translation (based on the link ID). Fix the SMPS request handling to use the AP MLD address and provide the link ID for the request processing during Tx. Signed-off-by: Ilan Peer <ilan.peer@intel.com> Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to 'net/mac80211/ht.c')
-rw-r--r--net/mac80211/ht.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/mac80211/ht.c b/net/mac80211/ht.c
index 33729870ad8a..802b0e738696 100644
--- a/net/mac80211/ht.c
+++ b/net/mac80211/ht.c
@@ -538,7 +538,7 @@ ieee80211_smps_mode_to_smps_mode(enum ieee80211_smps_mode smps)
int ieee80211_send_smps_action(struct ieee80211_sub_if_data *sdata,
enum ieee80211_smps_mode smps, const u8 *da,
- const u8 *bssid)
+ const u8 *bssid, int link_id)
{
struct ieee80211_local *local = sdata->local;
struct sk_buff *skb;
@@ -579,7 +579,7 @@ int ieee80211_send_smps_action(struct ieee80211_sub_if_data *sdata,
/* we'll do more on status of this frame */
IEEE80211_SKB_CB(skb)->flags |= IEEE80211_TX_CTL_REQ_TX_STATUS;
- ieee80211_tx_skb(sdata, skb);
+ ieee80211_tx_skb_tid(sdata, skb, 7, link_id);
return 0;
}