patch 'crypto/dpaa2_sec: fix FLE pool leak on sec FD failure' has been queued to stable release 24.11.9
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Thu Nov 5 17:41:45 CET 2026
Hi,
FYI, your patch has been queued to stable release 24.11.9
Note it hasn't been pushed to http://dpdk.org/browse/dpdk-stable yet.
It will be pushed if I get no objections before 11/07/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/bluca/dpdk-stable
This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/f8a53dd77ae12ab18631b295dde8bbf3f34ebd82
Thanks.
Luca Boccassi
---
>From f8a53dd77ae12ab18631b295dde8bbf3f34ebd82 Mon Sep 17 00:00:00 2001
From: Gagandeep Singh <g.singh at nxp.com>
Date: Tue, 6 Oct 2026 17:13:42 +0530
Subject: [PATCH] crypto/dpaa2_sec: fix FLE pool leak on sec FD failure
[ upstream commit a679baab0865cf8e4dd975b7d270af43520fcc26 ]
When build_sec_fd fails at index loop inside the enqueue burst loops,
the previously built FD entries (indices 0..loop-1) were never freed.
The cleanup loop iterated in the wrong direction, starting at the
failed index and going up to frames_to_send, which are entries that
were never built. This caused silent FLE pool exhaustion, after which
every subsequent build_sec_fd returned -ENOMEM, enqueue_burst
returned 0 indefinitely, and the crypto-perf test hung.
Fix both dpaa2_sec_enqueue_burst and dpaa2_sec_enqueue_burst_ordered
by clamping frames_to_send to loop + 1 and iterating from 0 to
free all allocated FLE buffers including the failed entry.
Fixes: 623326dded3a ("crypto/dpaa2_sec: introduce poll mode driver")
Signed-off-by: Gagandeep Singh <g.singh at nxp.com>
---
drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c | 6 ++++++
1 file changed, 6 insertions(+)
diff --git a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
index 655dfab75f8..ea44b865dc0 100644
--- a/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
+++ b/drivers/crypto/dpaa2_sec/dpaa2_sec_dpseci.c
@@ -1508,6 +1508,9 @@ dpaa2_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
ret = build_sec_fd(*ops, &fd_arr[loop], bpid, dpaa2_qp);
if (ret) {
DPAA2_SEC_DP_DEBUG("FD build failed");
+ frames_to_send = loop + 1;
+ for (loop = 0; loop < frames_to_send; loop++)
+ free_fle(&fd_arr[loop], dpaa2_qp);
goto skip_tx;
}
ops++;
@@ -1848,6 +1851,9 @@ dpaa2_sec_enqueue_burst_ordered(void *qp, struct rte_crypto_op **ops,
ret = build_sec_fd(*ops, &fd_arr[loop], bpid, dpaa2_qp);
if (ret) {
DPAA2_SEC_DP_DEBUG("FD build failed");
+ frames_to_send = loop + 1;
+ for (loop = 0; loop < frames_to_send; loop++)
+ free_fle(&fd_arr[loop], dpaa2_qp);
goto skip_tx;
}
ops++;
--
2.47.3
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2026-11-05 16:42:45.729566351 +0000
+++ 0018-crypto-dpaa2_sec-fix-FLE-pool-leak-on-sec-FD-failure.patch 2026-11-05 16:42:44.905060308 +0000
@@ -1 +1 @@
-From a679baab0865cf8e4dd975b7d270af43520fcc26 Mon Sep 17 00:00:00 2001
+From f8a53dd77ae12ab18631b295dde8bbf3f34ebd82 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit a679baab0865cf8e4dd975b7d270af43520fcc26 ]
+
@@ -19 +20,0 @@
-Cc: stable at dpdk.org
@@ -27 +28 @@
-index a3be1eef70..961f9a742f 100644
+index 655dfab75f8..ea44b865dc0 100644
@@ -30 +31 @@
-@@ -1550,6 +1550,9 @@ dpaa2_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
+@@ -1508,6 +1508,9 @@ dpaa2_sec_enqueue_burst(void *qp, struct rte_crypto_op **ops,
@@ -40 +41 @@
-@@ -1909,6 +1912,9 @@ dpaa2_sec_enqueue_burst_ordered(void *qp, struct rte_crypto_op **ops,
+@@ -1848,6 +1851,9 @@ dpaa2_sec_enqueue_burst_ordered(void *qp, struct rte_crypto_op **ops,
More information about the stable
mailing list