Patch "mac80211: Fix MLO address translation for multiple bss case" 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

    mac80211: Fix MLO address translation for multiple bss case

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:
     mac80211-fix-mlo-address-translation-for-multiple-bs.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 75d2a851e8ff03827b0a72cfdd64003cd6459d18
Author: Sriram R <quic_srirrama@xxxxxxxxxxx>
Date:   Thu Dec 8 09:30:50 2022 +0530

    mac80211: Fix MLO address translation for multiple bss case
    
    [ Upstream commit fa22b51ace8aa106267636f36170e940e676809c ]
    
    When multiple interfaces are present in the local interface
    list, new skb copy is taken before rx processing except for
    the first interface. The address translation happens each
    time only on the original skb since the hdr pointer is not
    updated properly to the newly created skb.
    
    As a result frames start to drop in userspace when address
    based checks or search fails.
    
    Signed-off-by: Sriram R <quic_srirrama@xxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20221208040050.25922-1-quic_srirrama@xxxxxxxxxxx
    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 3262ebb24092..8f0d7c666df7 100644
--- a/net/mac80211/rx.c
+++ b/net/mac80211/rx.c
@@ -4859,6 +4859,9 @@ static bool ieee80211_prepare_and_rx_handle(struct ieee80211_rx_data *rx,
 		 */
 		shwt = skb_hwtstamps(rx->skb);
 		shwt->hwtstamp = skb_hwtstamps(skb)->hwtstamp;
+
+		/* Update the hdr pointer to the new skb for translation below */
+		hdr = (struct ieee80211_hdr *)rx->skb->data;
 	}
 
 	if (unlikely(rx->sta && rx->sta->sta.mlo)) {



[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