summaryrefslogtreecommitdiffstats
path: root/net/mac80211/tx.c
diff options
context:
space:
mode:
authorJohannes Berg <johannes.berg@intel.com>2022-08-24 12:37:32 +0200
committerJohannes Berg <johannes.berg@intel.com>2022-08-25 10:41:34 +0200
commit3579f4c28e77a8a19cb804ab7f7ea6843c50f6ad (patch)
treeac03f7962e76ba4a9aaaee959c58d7b219b0b9b3 /net/mac80211/tx.c
parentwifi: mac80211: fix control port frame addressing (diff)
downloadlinux-3579f4c28e77a8a19cb804ab7f7ea6843c50f6ad.tar.xz
linux-3579f4c28e77a8a19cb804ab7f7ea6843c50f6ad.zip
wifi: mac80211: allow link address A2 in TXQ dequeue
In ieee80211_tx_dequeue() we currently allow a control port frame to be transmitted on a non-authorized port only if the A2 matches the local interface address, but if that's an MLD and the peer is a legacy peer, we need to allow link address here. Fix that. Signed-off-by: Johannes Berg <johannes.berg@intel.com>
Diffstat (limited to '')
-rw-r--r--net/mac80211/tx.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/net/mac80211/tx.c b/net/mac80211/tx.c
index 1c2658e4976f..51d564c8742b 100644
--- a/net/mac80211/tx.c
+++ b/net/mac80211/tx.c
@@ -3772,8 +3772,8 @@ begin:
!test_sta_flag(tx.sta, WLAN_STA_AUTHORIZED) &&
(!(info->control.flags &
IEEE80211_TX_CTRL_PORT_CTRL_PROTO) ||
- !ether_addr_equal(tx.sdata->vif.addr,
- hdr->addr2)))) {
+ !ieee80211_is_our_addr(tx.sdata, hdr->addr2,
+ NULL)))) {
I802_DEBUG_INC(local->tx_handlers_drop_unauth_port);
ieee80211_free_txskb(&local->hw, skb);
goto begin;