Skip to content

Commit 47c171a

Browse files
committed
wifi: mac80211: don't translate beacon/presp addrs
Don't do link address translation for beacons and probe responses, this leads to reporting multiple scan list entries for the same AP (one with the MLD address) which just breaks things. We might need to extend this in the future for some other (action) frames that aren't MLD addressed. Fixes: 42fb914 ("wifi: mac80211: do link->MLD address translation on RX") Signed-off-by: Johannes Berg <johannes.berg@intel.com> Signed-off-by: Gregory Greenman <gregory.greenman@intel.com> Link: https://lore.kernel.org/r/20230604120651.62adead1b43a.Ifc25eed26ebf3b269f60b1ec10060156d0e7ec0d@changeid Signed-off-by: Johannes Berg <johannes.berg@intel.com>
1 parent 68c2285 commit 47c171a

1 file changed

Lines changed: 3 additions & 1 deletion

File tree

net/mac80211/rx.c

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4965,7 +4965,9 @@ static bool ieee80211_prepare_and_rx_handle(struct ieee80211_rx_data *rx,
49654965
}
49664966

49674967
if (unlikely(rx->sta && rx->sta->sta.mlo) &&
4968-
is_unicast_ether_addr(hdr->addr1)) {
4968+
is_unicast_ether_addr(hdr->addr1) &&
4969+
!ieee80211_is_probe_resp(hdr->frame_control) &&
4970+
!ieee80211_is_beacon(hdr->frame_control)) {
49694971
/* translate to MLD addresses */
49704972
if (ether_addr_equal(link->conf->addr, hdr->addr1))
49714973
ether_addr_copy(hdr->addr1, rx->sdata->vif.addr);

0 commit comments

Comments
 (0)