diff options
author | Johannes Berg <johannes.berg@intel.com> | 2022-08-24 12:37:32 +0200 |
---|---|---|
committer | Johannes Berg <johannes.berg@intel.com> | 2022-08-25 10:41:34 +0200 |
commit | 3579f4c28e77a8a19cb804ab7f7ea6843c50f6ad (patch) | |
tree | ac03f7962e76ba4a9aaaee959c58d7b219b0b9b3 /net/mac80211/tx.c | |
parent | wifi: mac80211: fix control port frame addressing (diff) | |
download | linux-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.c | 4 |
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; |