patch 'net/ixgbe: fix good octets CRC adjustment' has been queued to stable release 25.11.3
Kevin Traynor
ktraynor at redhat.com
Thu Jul 23 19:15:12 CEST 2026
Hi,
FYI, your patch has been queued to stable release 25.11.3
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 07/27/26. So please
shout if anyone has objections.
Also note that after the patch there's a diff of the upstream commit vs the
patch applied to the branch. This will indicate if there was any rebasing
needed to apply to the stable branch. If there were code changes for rebasing
(ie: not only metadata diffs), please double check that the rebase was
correctly done.
Queued patches are on a temporary branch at:
https://github.com/kevintraynor/dpdk-stable
This queued commit can be viewed at:
https://github.com/kevintraynor/dpdk-stable/commit/1e675169a3dfc136e5feb361d92b73a96ff3d431
Thanks.
Kevin
---
>From 1e675169a3dfc136e5feb361d92b73a96ff3d431 Mon Sep 17 00:00:00 2001
From: Daniil Iskhakov <dish at amicon.ru>
Date: Mon, 4 May 2026 17:15:24 +0300
Subject: [PATCH] net/ixgbe: fix good octets CRC adjustment
[ upstream commit 77889afaf11f52a5e13f9077688c5e9ad501bbbb ]
On some devices, such as 82599, GORC is a 36-bit clear-on-read counter,
while GPRC is a 32-bit clear-on-read counter.
ixgbe_read_stats_registers() accumulates GORC in a 64-bit software
counter and, when CRC stripping is disabled, subtracts the CRC bytes
accounted for each received packet.
The driver does not read GPRC directly. Due to an erratum, it derives
the good packet delta from the sum of per-queue packet receives instead.
The 32-bit QPRC registers are used for this purpose.
delta_gprc is used as an accumulator for those per-queue deltas and is
then used to compute the CRC-byte adjustment. Keeping it 32-bit may wrap
the accumulated packet delta before it is used to adjust the 64-bit GORC
counter.
Make delta_gprc 64-bit so the accumulated packet delta and the CRC-byte
adjustment are computed without 32-bit overflow.
Found by Linux Verification Center (linuxtesting.org) with SVACE.
Fixes: c03fcee9abbd ("ixgbe: remove CRC size from byte counters")
Signed-off-by: Daniil Iskhakov <dish at amicon.ru>
Acked-by: Bruce Richardson <bruce.richardson at intel.com>
---
drivers/net/intel/ixgbe/ixgbe_ethdev.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/net/intel/ixgbe/ixgbe_ethdev.c b/drivers/net/intel/ixgbe/ixgbe_ethdev.c
index 0c2b9f8d20..05b1f6fda2 100644
--- a/drivers/net/intel/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/intel/ixgbe/ixgbe_ethdev.c
@@ -3191,5 +3191,5 @@ ixgbe_read_stats_registers(struct ixgbe_hw *hw,
{
uint32_t bprc, lxon, lxoff, total;
- uint32_t delta_gprc = 0;
+ uint64_t delta_gprc = 0;
unsigned i;
/* Workaround for RX byte count not including CRC bytes when CRC
--
2.55.0
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2026-07-23 17:58:00.074297070 +0100
+++ 0049-net-ixgbe-fix-good-octets-CRC-adjustment.patch 2026-07-23 17:57:58.661918590 +0100
@@ -1 +1 @@
-From 77889afaf11f52a5e13f9077688c5e9ad501bbbb Mon Sep 17 00:00:00 2001
+From 1e675169a3dfc136e5feb361d92b73a96ff3d431 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 77889afaf11f52a5e13f9077688c5e9ad501bbbb ]
+
@@ -27 +28,0 @@
-Cc: stable at dpdk.org
@@ -36 +37 @@
-index 991ec6e870..cfb2d94852 100644
+index 0c2b9f8d20..05b1f6fda2 100644
@@ -39 +40 @@
-@@ -3192,5 +3192,5 @@ ixgbe_read_stats_registers(struct ixgbe_hw *hw,
+@@ -3191,5 +3191,5 @@ ixgbe_read_stats_registers(struct ixgbe_hw *hw,
More information about the stable
mailing list