patch 'net/mana: fix CQE suppression handling on error completions' has been queued to stable release 25.11.1

Kevin Traynor ktraynor at redhat.com
Fri Mar 27 11:01:24 CET 2026


Hi,

FYI, your patch has been queued to stable release 25.11.1

Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 03/31/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/2f5c495f304e0290b69a8759cef8a634b09ac42b

Thanks.

Kevin

---
>From 2f5c495f304e0290b69a8759cef8a634b09ac42b Mon Sep 17 00:00:00 2001
From: Long Li <longli at microsoft.com>
Date: Wed, 25 Mar 2026 11:38:36 -0700
Subject: [PATCH] net/mana: fix CQE suppression handling on error completions

[ upstream commit 823dbf286053c1cc4231a5828ffc300a70f4f510 ]

On error CQEs (e.g. SA_DROP), the hardware generates one CQE per WQE
regardless of the suppression flag. The previous code honored the
suppress_tx_cqe flag unconditionally, which caused it to skip reading
error CQEs and misalign the CQ consumer index.

This misalignment causes subsequent completions to be misinterpreted:
valid CQEs are read at wrong offsets, leading to spurious error
counts, NULL packet frees, and potential use-after-free of mbufs
that were already completed.

Check the CQE type before honoring suppression: only skip CQE reading
when the completion is CQE_TX_OKAY.

Fixes: cce2c9df4481 ("net/mana: suppress Tx CQE generation whenever possible")

Signed-off-by: Long Li <longli at microsoft.com>
---
 drivers/net/mana/tx.c | 6 ++++--
 1 file changed, 4 insertions(+), 2 deletions(-)

diff --git a/drivers/net/mana/tx.c b/drivers/net/mana/tx.c
index 40931ac027..e5ab566e8a 100644
--- a/drivers/net/mana/tx.c
+++ b/drivers/net/mana/tx.c
@@ -229,7 +229,9 @@ mana_tx_burst(void *dpdk_txq, struct rte_mbuf **tx_pkts, uint16_t nb_pkts)
 
 		/* If TX CQE suppression is used, don't read more CQE but move
-		 * on to the next packet
+		 * on to the next packet. On error CQEs, HW generates one CQE
+		 * per WQE regardless of suppression, so always advance.
 		 */
-		if (desc->suppress_tx_cqe)
+		if (desc->suppress_tx_cqe &&
+		    oob->cqe_hdr.cqe_type == CQE_TX_OKAY)
 			continue;
 
-- 
2.53.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2026-03-27 09:58:26.854619505 +0000
+++ 0024-net-mana-fix-CQE-suppression-handling-on-error-compl.patch	2026-03-27 09:58:26.151756120 +0000
@@ -1 +1 @@
-From 823dbf286053c1cc4231a5828ffc300a70f4f510 Mon Sep 17 00:00:00 2001
+From 2f5c495f304e0290b69a8759cef8a634b09ac42b Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 823dbf286053c1cc4231a5828ffc300a70f4f510 ]
+
@@ -20 +21,0 @@
-Cc: stable at dpdk.org



More information about the stable mailing list