Patch "samples/bpf: Fix MAC address swapping in xdp2_kern" 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

    samples/bpf: Fix MAC address swapping in xdp2_kern

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:
     samples-bpf-fix-mac-address-swapping-in-xdp2_kern.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 920cee5947ddf57f818bb31be232247818fe68ce
Author: Gerhard Engleder <gerhard@xxxxxxxxxxxxxxxxxxxxx>
Date:   Sat Oct 15 23:30:50 2022 +0200

    samples/bpf: Fix MAC address swapping in xdp2_kern
    
    [ Upstream commit 7a698edf954cb3f8b6e8dacdb77615355170420c ]
    
    xdp2_kern rewrites and forwards packets out on the same interface.
    Forwarding still works but rewrite got broken when xdp multibuffer
    support has been added.
    
    With xdp multibuffer a local copy of the packet has been introduced. The
    MAC address is now swapped in the local copy, but the local copy in not
    written back.
    
    Fix MAC address swapping be adding write back of modified packet.
    
    Fixes: 772251742262 ("samples/bpf: fixup some tools to be able to support xdp multibuffer")
    Signed-off-by: Gerhard Engleder <gerhard@xxxxxxxxxxxxxxxxxxxxx>
    Reviewed-by: Andy Gospodarek <gospo@xxxxxxxxxxxx>
    Link: https://lore.kernel.org/r/20221015213050.65222-1-gerhard@xxxxxxxxxxxxxxxxxxxxx
    Signed-off-by: Martin KaFai Lau <martin.lau@xxxxxxxxxx>
    Signed-off-by: Sasha Levin <sashal@xxxxxxxxxx>

diff --git a/samples/bpf/xdp2_kern.c b/samples/bpf/xdp2_kern.c
index 3332ba6bb95f..67804ecf7ce3 100644
--- a/samples/bpf/xdp2_kern.c
+++ b/samples/bpf/xdp2_kern.c
@@ -112,6 +112,10 @@ int xdp_prog1(struct xdp_md *ctx)
 
 	if (ipproto == IPPROTO_UDP) {
 		swap_src_dst_mac(data);
+
+		if (bpf_xdp_store_bytes(ctx, 0, pkt, sizeof(pkt)))
+			return rc;
+
 		rc = XDP_TX;
 	}
 



[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