Patch "wifi: mac80211: don't translate beacon/presp addrs" has been added to the 6.1-stable tree

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



This is a note to let you know that I've just added the patch titled

    wifi: mac80211: don't translate beacon/presp addrs

to the 6.1-stable tree which can be found at:
    http://www.kernel.org/git/?p=linux/kernel/git/stable/stable-queue.git;a=summary

The filename of the patch is:
     wifi-mac80211-don-t-translate-beacon-presp-addrs.patch
and it can be found in the queue-6.1 subdirectory.

If you, or anyone else, feels it should not be added to the stable tree,
please let <stable@xxxxxxxxxxxxxxx> know about it.



commit 9c09a1d135cacd74726b6b7349b0137b64c9c512
Author: Johannes Berg <johannes.berg@xxxxxxxxx>
Date:   Sun Jun 4 12:11:15 2023 +0300

    wifi: mac80211: don't translate beacon/presp addrs
    
    [ Upstream commit 47c171a426e305f2225b92ed7b5e0a990c95f6d4 ]
    
    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: 42fb9148c078 ("wifi: mac80211: do link->MLD address translation on RX")
    Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
    Signed-off-by: Gregory Greenman <gregory.greenman@xxxxxxxxx>
    Link: https://lore.kernel.org/r/20230604120651.62adead1b43a.Ifc25eed26ebf3b269f60b1ec10060156d0e7ec0d@changeid
    Signed-off-by: Johannes Berg <johannes.berg@xxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/net/mac80211/rx.c b/net/mac80211/rx.c
index 44e407e1a14c7..0f81492da0b46 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -4857,7 +4857,9 @@ static bool ieee80211_prepare_and_rx_handle(struct ieee80211_rx_data *rx,
 	}
 
 	if (unlikely(rx->sta && rx->sta->sta.mlo) &&
-	    is_unicast_ether_addr(hdr->addr1)) {
+	    is_unicast_ether_addr(hdr->addr1) &&
+	    !ieee80211_is_probe_resp(hdr->frame_control) &&
+	    !ieee80211_is_beacon(hdr->frame_control)) {
 		/* translate to MLD addresses */
 		if (ether_addr_equal(link->conf->addr, hdr->addr1))
 			ether_addr_copy(hdr->addr1, rx->sdata->vif.addr);



[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[Index of Archives]     [Linux USB Devel]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux