patch 'bus/dpaa: fix lock condition during error handling' has been queued to stable release 21.11.9

Kevin Traynor ktraynor at redhat.com
Wed Nov 27 18:18:57 CET 2024


Hi,

FYI, your patch has been queued to stable release 21.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 12/02/24. 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/1d8a923c44ca0edfdade3a2558dbb526d54fb987

Thanks.

Kevin

---
>From 1d8a923c44ca0edfdade3a2558dbb526d54fb987 Mon Sep 17 00:00:00 2001
From: Hemant Agrawal <hemant.agrawal at nxp.com>
Date: Thu, 14 Nov 2024 13:14:35 +0530
Subject: [PATCH] bus/dpaa: fix lock condition during error handling

[ upstream commit c7c3a329750b81bdaeb3f7ceffac0ec3a65f61f8 ]

The error handling is missing FQ unlock code.
Detected by pvs-studio
Bug 89-93: very suspicious synchronization
The analyzer issued a pack of V1020 warnings that a resource
might remain blocked.

Fixes: c47ff048b99a ("bus/dpaa: add QMAN driver core routines")

Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com>
---
 drivers/bus/dpaa/base/qbman/qman.c | 8 ++++++--
 1 file changed, 6 insertions(+), 2 deletions(-)

diff --git a/drivers/bus/dpaa/base/qbman/qman.c b/drivers/bus/dpaa/base/qbman/qman.c
index c5e66d4325..098bfd68a0 100644
--- a/drivers/bus/dpaa/base/qbman/qman.c
+++ b/drivers/bus/dpaa/base/qbman/qman.c
@@ -2170,6 +2170,8 @@ int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags)
 	if (!p->vdqcr_owned) {
 		FQLOCK(fq);
-		if (fq_isset(fq, QMAN_FQ_STATE_VDQCR))
+		if (fq_isset(fq, QMAN_FQ_STATE_VDQCR)) {
+			FQUNLOCK(fq);
 			goto escape;
+		}
 		fq_set(fq, QMAN_FQ_STATE_VDQCR);
 		FQUNLOCK(fq);
@@ -2204,6 +2206,8 @@ int qman_volatile_dequeue(struct qman_fq *fq, u32 flags __maybe_unused,
 	if (!p->vdqcr_owned) {
 		FQLOCK(fq);
-		if (fq_isset(fq, QMAN_FQ_STATE_VDQCR))
+		if (fq_isset(fq, QMAN_FQ_STATE_VDQCR)) {
+			FQUNLOCK(fq);
 			goto escape;
+		}
 		fq_set(fq, QMAN_FQ_STATE_VDQCR);
 		FQUNLOCK(fq);
-- 
2.47.0

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2024-11-27 17:17:41.725351803 +0000
+++ 0110-bus-dpaa-fix-lock-condition-during-error-handling.patch	2024-11-27 17:17:38.340269969 +0000
@@ -1 +1 @@
-From c7c3a329750b81bdaeb3f7ceffac0ec3a65f61f8 Mon Sep 17 00:00:00 2001
+From 1d8a923c44ca0edfdade3a2558dbb526d54fb987 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit c7c3a329750b81bdaeb3f7ceffac0ec3a65f61f8 ]
+
@@ -13 +14,0 @@
-Cc: stable at dpdk.org
@@ -21 +22 @@
-index 9c90ee25a6..c48fa3e073 100644
+index c5e66d4325..098bfd68a0 100644
@@ -24 +25 @@
-@@ -2139,6 +2139,8 @@ int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags)
+@@ -2170,6 +2170,8 @@ int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags)
@@ -34 +35 @@
-@@ -2173,6 +2175,8 @@ int qman_volatile_dequeue(struct qman_fq *fq, u32 flags __maybe_unused,
+@@ -2204,6 +2206,8 @@ int qman_volatile_dequeue(struct qman_fq *fq, u32 flags __maybe_unused,



More information about the stable mailing list