[PATCH v1 4/5] baseband/acc: fix ring interrupt handler err path
Hernan Vargas
hernan.vargas at intel.com
Tue Nov 3 18:29:01 CET 2026
When get_queue_id_from_ring_info() fails to match a queue index
(returning UINT16_MAX), an early return skipped clearing the ring
entry and advancing the head pointer. This left the valid bit set,
causing the same malformed entry to be reprocessed on every
subsequent interrupt, blocking all further ring processing.
Replace the return with break so the entry is consumed and the
loop continues normally. Fix applies to both PF and VF paths.
Fixes: 3cabc8eaf524 ("baseband/acc200: support interrupt")
Cc: stable at dpdk.org
Signed-off-by: Hernan Vargas <hernan.vargas at intel.com>
---
drivers/baseband/acc/rte_vrb_pmd.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/baseband/acc/rte_vrb_pmd.c b/drivers/baseband/acc/rte_vrb_pmd.c
index b9ff027ce8..803e0c9177 100644
--- a/drivers/baseband/acc/rte_vrb_pmd.c
+++ b/drivers/baseband/acc/rte_vrb_pmd.c
@@ -454,7 +454,7 @@ vrb_dev_interrupt_handler(void *cb_arg)
rte_bbdev_log(ERR,
"Couldn't find queue: aq_id: %u, qg_id: %u, vf_id: %u",
aq_id, qg_id, vf_id);
- return;
+ break;
}
rte_bbdev_pmd_callback_process(dev,
RTE_BBDEV_EVENT_DEQUEUE, &deq_intr_det);
@@ -482,7 +482,7 @@ vrb_dev_interrupt_handler(void *cb_arg)
rte_bbdev_log(ERR,
"Couldn't find queue: aq_id: %u, qg_id: %u",
aq_id, qg_id);
- return;
+ break;
}
rte_bbdev_pmd_callback_process(dev,
RTE_BBDEV_EVENT_DEQUEUE, &deq_intr_det);
--
2.34.1
More information about the stable
mailing list