patch 'bus/dpaa: fix lock condition during error handling' has been queued to stable release 22.11.7
luca.boccassi at gmail.com
luca.boccassi at gmail.com
Thu Nov 21 00:41:47 CET 2024
Hi,
FYI, your patch has been queued to stable release 22.11.7
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/22/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/bluca/dpdk-stable
This queued commit can be viewed at:
https://github.com/bluca/dpdk-stable/commit/cc3d964ab6cd086011eb5377870b30d0c03c5b48
Thanks.
Luca Boccassi
---
>From cc3d964ab6cd086011eb5377870b30d0c03c5b48 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 f06992ca48..3a1a843ba0 100644
--- a/drivers/bus/dpaa/base/qbman/qman.c
+++ b/drivers/bus/dpaa/base/qbman/qman.c
@@ -2169,8 +2169,10 @@ 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);
p->vdqcr_owned = fq;
@@ -2203,8 +2205,10 @@ 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);
p->vdqcr_owned = fq;
--
2.45.2
---
Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- - 2024-11-20 23:41:23.493009101 +0000
+++ 0022-bus-dpaa-fix-lock-condition-during-error-handling.patch 2024-11-20 23:41:22.748195468 +0000
@@ -1 +1 @@
-From c7c3a329750b81bdaeb3f7ceffac0ec3a65f61f8 Mon Sep 17 00:00:00 2001
+From cc3d964ab6cd086011eb5377870b30d0c03c5b48 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 f06992ca48..3a1a843ba0 100644
@@ -24 +25 @@
-@@ -2138,8 +2138,10 @@ int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags)
+@@ -2169,8 +2169,10 @@ int qman_set_vdq(struct qman_fq *fq, u16 num, uint32_t vdqcr_flags)
@@ -36 +37 @@
-@@ -2172,8 +2174,10 @@ int qman_volatile_dequeue(struct qman_fq *fq, u32 flags __maybe_unused,
+@@ -2203,8 +2205,10 @@ int qman_volatile_dequeue(struct qman_fq *fq, u32 flags __maybe_unused,
More information about the stable
mailing list