]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
bnxt_en: correct offset handling for IPv6 destination address
authorAlok Tiwari <alok.a.tiwari@oracle.com>
Sat, 20 Sep 2025 12:11:17 +0000 (05:11 -0700)
committerJakub Kicinski <kuba@kernel.org>
Tue, 23 Sep 2025 00:56:39 +0000 (17:56 -0700)
In bnxt_tc_parse_pedit(), the code incorrectly writes IPv6
destination values to the source address field (saddr) when
processing pedit offsets within the destination address range.

This patch corrects the assignment to use daddr instead of saddr,
ensuring that pedit operations on IPv6 destination addresses are
applied correctly.

Fixes: 9b9eb518e338 ("bnxt_en: Add support for NAT(L3/L4 rewrite)")
Signed-off-by: Alok Tiwari <alok.a.tiwari@oracle.com>
Reviewed-by: Somnath Kotur <somnath.kotur@broadcom.com>
Link: https://patch.msgid.link/20250920121157.351921-1-alok.a.tiwari@oracle.com
Signed-off-by: Jakub Kicinski <kuba@kernel.org>
drivers/net/ethernet/broadcom/bnxt/bnxt_tc.c

index d72fd248f3aa9267f299e7e2b4fd0669d610520b..2d66bf59cd64d68f0f67779cf7df1b91ad1ae784 100644 (file)
@@ -244,7 +244,7 @@ bnxt_tc_parse_pedit(struct bnxt *bp, struct bnxt_tc_actions *actions,
                           offset < offset_of_ip6_daddr + 16) {
                        actions->nat.src_xlate = false;
                        idx = (offset - offset_of_ip6_daddr) / 4;
-                       actions->nat.l3.ipv6.saddr.s6_addr32[idx] = htonl(val);
+                       actions->nat.l3.ipv6.daddr.s6_addr32[idx] = htonl(val);
                } else {
                        netdev_err(bp->dev,
                                   "%s: IPv6_hdr: Invalid pedit field\n",