patch 'net/ixgbe: fix flow control frame byte adjustment' has been queued to stable release 25.11.3

Kevin Traynor ktraynor at redhat.com
Thu Jul 23 19:15:15 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/144a0d2c62eae8eef99df020beee42899c47c4b9

Thanks.

Kevin

---
>From 144a0d2c62eae8eef99df020beee42899c47c4b9 Mon Sep 17 00:00:00 2001
From: Daniil Iskhakov <dish at amicon.ru>
Date: Mon, 4 May 2026 17:55:02 +0300
Subject: [PATCH] net/ixgbe: fix flow control frame byte adjustment

[ upstream commit bdf860855952f9bee1ba7f443e3041f19c997d79 ]

LXONTXC and LXOFFTXC are 32-bit counters for transmitted XON and
XOFF packets. ixgbe_read_stats_registers() sums their deltas and uses
the result to adjust the transmitted byte counters by the minimum
Ethernet frame length.

The sum is currently computed as:

	total = lxon + lxoff

Since both operands are 32-bit, the addition is performed in 32 bits
and may wrap before the result is stored in total. The wrapped value is
then used in the byte adjustment, which may make the software byte
counters incorrect.

Make total 64-bit and cast lxon before the addition so the XON/XOFF
packet sum and the following byte adjustment are computed without
32-bit overflow.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: af75078fece3 ("first public release")

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 | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/drivers/net/intel/ixgbe/ixgbe_ethdev.c b/drivers/net/intel/ixgbe/ixgbe_ethdev.c
index 05b1f6fda2..23cb9e6b48 100644
--- a/drivers/net/intel/ixgbe/ixgbe_ethdev.c
+++ b/drivers/net/intel/ixgbe/ixgbe_ethdev.c
@@ -3190,5 +3190,6 @@ ixgbe_read_stats_registers(struct ixgbe_hw *hw,
 			   uint64_t *total_qprc, uint64_t *total_qprdc)
 {
-	uint32_t bprc, lxon, lxoff, total;
+	uint32_t bprc, lxon, lxoff;
+	uint64_t total;
 	uint64_t delta_gprc = 0;
 	unsigned i;
@@ -3319,5 +3320,5 @@ ixgbe_read_stats_registers(struct ixgbe_hw *hw,
 	lxoff = IXGBE_READ_REG(hw, IXGBE_LXOFFTXC);
 	hw_stats->lxofftxc += lxoff;
-	total = lxon + lxoff;
+	total = (uint64_t)lxon + lxoff;
 
 	hw_stats->mptc += IXGBE_READ_REG(hw, IXGBE_MPTC);
-- 
2.55.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2026-07-23 17:58:00.156010749 +0100
+++ 0052-net-ixgbe-fix-flow-control-frame-byte-adjustment.patch	2026-07-23 17:57:58.663918587 +0100
@@ -1 +1 @@
-From bdf860855952f9bee1ba7f443e3041f19c997d79 Mon Sep 17 00:00:00 2001
+From 144a0d2c62eae8eef99df020beee42899c47c4b9 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit bdf860855952f9bee1ba7f443e3041f19c997d79 ]
+
@@ -27 +28,0 @@
-Cc: stable at dpdk.org
@@ -36 +37 @@
-index cfb2d94852..57c65cd73d 100644
+index 05b1f6fda2..23cb9e6b48 100644
@@ -39 +40 @@
-@@ -3191,5 +3191,6 @@ ixgbe_read_stats_registers(struct ixgbe_hw *hw,
+@@ -3190,5 +3190,6 @@ ixgbe_read_stats_registers(struct ixgbe_hw *hw,
@@ -47 +48 @@
-@@ -3320,5 +3321,5 @@ ixgbe_read_stats_registers(struct ixgbe_hw *hw,
+@@ -3319,5 +3320,5 @@ ixgbe_read_stats_registers(struct ixgbe_hw *hw,



More information about the stable mailing list