[PATCH v2] net/dpaa: fix Rx queue shutdown before init

Prashant Gupta prashant.gupta_3 at nxp.com
Mon Aug 31 08:11:59 CEST 2026


The frame queue shutdown in dpaa_eth_rx_queue_setup() is too late:
the queue has already been created and initialized by dpaa_dev_init(),
so the shutdown forces a live FQ out of service and the queue no
longer receives frames.

Move the shutdown to dpaa_dev_init(), just before dpaa_rx_queue_init(),
where it cleans up a frame queue left over from a previous run as
intended.

Fixes: 0e3c389b9e4f ("bus/dpaa: do proper cleanup of frame queues on shutdown")
Cc: stable at dpdk.org

Signed-off-by: Prashant Gupta <prashant.gupta_3 at nxp.com>
---
 drivers/net/dpaa/dpaa_ethdev.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index 4dc4d1f10c..b7bc616fed 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -1119,9 +1119,6 @@ int dpaa_eth_rx_queue_setup(struct rte_eth_dev *dev, uint16_t queue_idx,
 	DPAA_PMD_INFO("Rx queue setup for queue index: %d fq_id (0x%x)",
 			queue_idx, rxq->fqid);
 
-	/* Shutdown FQ before configure */
-	qman_shutdown_fq(rxq->fqid);
-
 	if (!fif->num_profiles) {
 		if (dpaa_intf->bp_info && dpaa_intf->bp_info->bp &&
 			dpaa_intf->bp_info->mp != mp) {
@@ -2355,6 +2352,11 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
 
 		vsp_id = dev_vspids[loop];
 
+		/* Clean up a frame queue left behind by a previous run
+		 * before it is initialized.
+		 */
+		qman_shutdown_fq(rxq->fqid);
+
 		if (dpaa_intf->cgr_rx)
 			dpaa_intf->cgr_rx[loop].cgrid = cgrid[loop];
 
-- 
2.43.0



More information about the dev mailing list