|
Jiri Slaby |
ef7db2 |
From: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
|
|
Jiri Slaby |
ef7db2 |
Date: Tue, 14 Feb 2023 12:10:48 +0200
|
|
Jiri Slaby |
ef7db2 |
Subject: [PATCH] wifi: mac80211: Don't translate MLD addresses for multicast
|
|
Jiri Slaby |
ef7db2 |
References: bsc#1012628
|
|
Jiri Slaby |
ef7db2 |
Patch-mainline: 6.2.3
|
|
Jiri Slaby |
ef7db2 |
Git-commit: daf8fb4295dccc032515cdc1bd3873370063542b
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
[ Upstream commit daf8fb4295dccc032515cdc1bd3873370063542b ]
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
MLD address translation should be done only for individually addressed
|
|
Jiri Slaby |
ef7db2 |
frames. Otherwise, AAD calculation would be wrong and the decryption
|
|
Jiri Slaby |
ef7db2 |
would fail.
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
Fixes: e66b7920aa5ac ("wifi: mac80211: fix initialization of rx->link and rx->link_sta")
|
|
Jiri Slaby |
ef7db2 |
Signed-off-by: Andrei Otcheretianski <andrei.otcheretianski@intel.com>
|
|
Jiri Slaby |
ef7db2 |
Link: https://lore.kernel.org/r/20230214101048.792414-1-andrei.otcheretianski@intel.com
|
|
Jiri Slaby |
ef7db2 |
Signed-off-by: Johannes Berg <johannes.berg@intel.com>
|
|
Jiri Slaby |
ef7db2 |
Signed-off-by: Sasha Levin <sashal@kernel.org>
|
|
Jiri Slaby |
ef7db2 |
Signed-off-by: Jiri Slaby <jslaby@suse.cz>
|
|
Jiri Slaby |
ef7db2 |
---
|
|
Jiri Slaby |
ef7db2 |
net/mac80211/rx.c | 3 ++-
|
|
Jiri Slaby |
ef7db2 |
1 file changed, 2 insertions(+), 1 deletion(-)
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
|
|
Jiri Slaby |
ef7db2 |
index 3c4541ee..870b8d04 100644
|
|
Jiri Slaby |
ef7db2 |
--- a/net/mac80211/rx.c
|
|
Jiri Slaby |
ef7db2 |
+++ b/net/mac80211/rx.c
|
|
Jiri Slaby |
ef7db2 |
@@ -4840,7 +4840,8 @@ static bool ieee80211_prepare_and_rx_handle(struct ieee80211_rx_data *rx,
|
|
Jiri Slaby |
ef7db2 |
hdr = (struct ieee80211_hdr *)rx->skb->data;
|
|
Jiri Slaby |
ef7db2 |
}
|
|
Jiri Slaby |
ef7db2 |
|
|
Jiri Slaby |
ef7db2 |
- if (unlikely(rx->sta && rx->sta->sta.mlo)) {
|
|
Jiri Slaby |
ef7db2 |
+ if (unlikely(rx->sta && rx->sta->sta.mlo) &&
|
|
Jiri Slaby |
ef7db2 |
+ is_unicast_ether_addr(hdr->addr1)) {
|
|
Jiri Slaby |
ef7db2 |
/* translate to MLD addresses */
|
|
Jiri Slaby |
ef7db2 |
if (ether_addr_equal(link->conf->addr, hdr->addr1))
|
|
Jiri Slaby |
ef7db2 |
ether_addr_copy(hdr->addr1, rx->sdata->vif.addr);
|
|
Jiri Slaby |
ef7db2 |
--
|
|
Jiri Slaby |
ef7db2 |
2.35.3
|
|
Jiri Slaby |
ef7db2 |
|