projects
/
platform
/
kernel
/
linux-starfive.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
| inline |
side by side
(parent:
d99975c
)
wifi: mac80211: Don't translate MLD addresses for multicast
author
Andrei Otcheretianski
<andrei.otcheretianski@intel.com>
Tue, 14 Feb 2023 10:10:48 +0000
(12:10 +0200)
committer
Johannes Berg
<johannes.berg@intel.com>
Tue, 14 Feb 2023 12:36:06 +0000
(13:36 +0100)
MLD address translation should be done only for individually addressed
frames. Otherwise, AAD calculation would be wrong and the decryption
would fail.
Fixes:
e66b7920aa5ac
("wifi: mac80211: fix initialization of rx->link and rx->link_sta")
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
Link:
https://lore.kernel.org/r/20230214101048.792414-1-andrei.otcheretianski@intel.com
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
net/mac80211/rx.c
patch
|
blob
|
history
diff --git
a/net/mac80211/rx.c
b/net/mac80211/rx.c
index
dd571c7
..
8965508
100644
(file)
--- a/
net/mac80211/rx.c
+++ b/
net/mac80211/rx.c
@@
-4882,7
+4882,8
@@
static bool ieee80211_prepare_and_rx_handle(struct ieee80211_rx_data *rx,
hdr = (struct ieee80211_hdr *)rx->skb->data;
}
- if (unlikely(rx->sta && rx->sta->sta.mlo)) {
+ if (unlikely(rx->sta && rx->sta->sta.mlo) &&
+ is_unicast_ether_addr(hdr->addr1)) {
/* translate to MLD addresses */
if (ether_addr_equal(link->conf->addr, hdr->addr1))
ether_addr_copy(hdr->addr1, rx->sdata->vif.addr);