blob: d81b7a0ffa6bef96add92a9023333e67a8c05f56 [file] [log] [blame]
developer05f3b2b2024-08-19 19:17:34 +08001From 918df54f28978540816e00860677b87a36922c6a Mon Sep 17 00:00:00 2001
developer66e89bc2024-04-23 14:50:01 +08002From: Michael-CY Lee <michael-cy.lee@mediatek.com>
3Date: Thu, 25 Jan 2024 14:07:23 +0800
developer05f3b2b2024-08-19 19:17:34 +08004Subject: [PATCH 56/89] mtk: mac80211: fix AP mgmt not encrypted in WDS mode
developer66e89bc2024-04-23 14:50:01 +08005 with PMF on
6
7In ieee80211_tx_prepare(), if tx->sta is still NULL after calling
8sta_info_get(), the skb might be mgmt for WDS peer, so sta_info_get_bss()
9if called to find sta from AP_VLAN, and then interface type & 4-addr
10using is checked.
11
developer66e89bc2024-04-23 14:50:01 +080012Signed-off-by: Michael-CY Lee <michael-cy.lee@mediatek.com>
13---
14 net/mac80211/tx.c | 7 +++++++
15 1 file changed, 7 insertions(+)
16
17diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
developer05f3b2b2024-08-19 19:17:34 +080018index 9e95dbd..00294cc 100644
developer66e89bc2024-04-23 14:50:01 +080019--- a/net/mac80211/tx.c
20+++ b/net/mac80211/tx.c
developer05f3b2b2024-08-19 19:17:34 +080021@@ -1239,6 +1239,13 @@ ieee80211_tx_prepare(struct ieee80211_sub_if_data *sdata,
developer66e89bc2024-04-23 14:50:01 +080022 if (!tx->sta && !is_multicast_ether_addr(hdr->addr1)) {
23 tx->sta = sta_info_get(sdata, hdr->addr1);
24 aggr_check = true;
25+
26+ if (!tx->sta) {
27+ tx->sta = sta_info_get_bss(sdata, hdr->addr1);
28+ if (!tx->sta || !tx->sta->sdata->wdev.use_4addr ||
29+ tx->sta->sdata->vif.type != NL80211_IFTYPE_AP_VLAN)
30+ tx->sta = NULL;
31+ }
32 }
33 }
34
35--
developerdad89a32024-04-29 14:17:17 +0800362.18.0
developer66e89bc2024-04-23 14:50:01 +080037