patch 'net/dpaa: fix free port resources on close' has been queued to stable release 24.11.9

luca.boccassi at gmail.com luca.boccassi at gmail.com
Thu Nov 5 17:42:38 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/b004ce1c8dcbc28558761e4746d14ba9be2de326

Thanks.

Luca Boccassi

---
>From b004ce1c8dcbc28558761e4746d14ba9be2de326 Mon Sep 17 00:00:00 2001
From: Hemant Agrawal <hemant.agrawal at nxp.com>
Date: Fri, 16 Oct 2026 16:49:37 +0530
Subject: [PATCH] net/dpaa: fix free port resources on close

[ upstream commit 7246cb6cf96903a0ee775e0c89b9acb765285fd2 ]

dpaa_eth_dev_close() returned early for offline (O/H) and ONIC ports,
before the common cleanup that frees the queue and congestion-group
memory allocated at probe. Added support to clean that path as well.

Fixes: 58e0420f72f8 ("net/dpaa: support Tx confirmation to enable PTP")

Signed-off-by: Hemant Agrawal <hemant.agrawal at nxp.com>
---
 drivers/net/dpaa/dpaa_ethdev.c | 15 ++++++++++-----
 1 file changed, 10 insertions(+), 5 deletions(-)

diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index 78be4512112..a1708b5f836 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -548,7 +548,7 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
 
 	if (fif->mac_type == fman_offline_internal ||
 	    fif->mac_type == fman_onic)
-		return 0;
+		goto clean_1;
 
 	/* Reset link to autoneg */
 	if (link->link_status && !link->link_autoneg) {
@@ -573,7 +573,7 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
 				dev->data->name, ret);
 		}
 	}
-
+clean_1:
 	/* release configuration memory */
 	rte_free(dpaa_intf->fc_conf);
 
@@ -635,6 +635,9 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
 		}
 	}
 
+	rte_free(dpaa_intf->tx_conf_queues);
+	dpaa_intf->tx_conf_queues = NULL;
+
 	return ret;
 }
 
@@ -2413,7 +2416,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
 	if (!dpaa_intf->tx_conf_queues) {
 		DPAA_PMD_ERR("Failed to alloc mem for TX conf queues");
 		ret = -ENOMEM;
-		goto free_rx;
+		goto free_tx;
 	}
 
 	/* If congestion control is enabled globally*/
@@ -2424,7 +2427,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
 		if (!dpaa_intf->cgr_tx) {
 			DPAA_PMD_ERR("Failed to alloc mem for cgr_tx");
 			ret = -ENOMEM;
-			goto free_rx;
+			goto free_tx;
 		}
 
 		ret = qman_alloc_cgrid_range(&cgrid_tx[0], MAX_DPAA_CORES,
@@ -2432,7 +2435,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
 		if (ret != MAX_DPAA_CORES) {
 			DPAA_PMD_WARN("insufficient CGRIDs available");
 			ret = -EINVAL;
-			goto free_rx;
+			goto free_tx;
 		}
 	} else {
 		dpaa_intf->cgr_tx = NULL;
@@ -2524,6 +2527,8 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
 	return 0;
 
 free_tx:
+	rte_free(dpaa_intf->tx_conf_queues);
+	dpaa_intf->tx_conf_queues = NULL;
 	rte_free(dpaa_intf->tx_queues);
 	dpaa_intf->tx_queues = NULL;
 	dpaa_intf->nb_tx_queues = 0;
-- 
2.47.3

---
  Diff of the applied patch vs upstream commit (please double-check if non-empty:
---
--- -	2026-11-05 16:42:47.678809170 +0000
+++ 0071-net-dpaa-fix-free-port-resources-on-close.patch	2026-11-05 16:42:45.001063177 +0000
@@ -1 +1 @@
-From 7246cb6cf96903a0ee775e0c89b9acb765285fd2 Mon Sep 17 00:00:00 2001
+From b004ce1c8dcbc28558761e4746d14ba9be2de326 Mon Sep 17 00:00:00 2001
@@ -5,0 +6,2 @@
+[ upstream commit 7246cb6cf96903a0ee775e0c89b9acb765285fd2 ]
+
@@ -11 +12,0 @@
-Cc: stable at dpdk.org
@@ -19 +20 @@
-index 2f6e2d20a3..1688acfb30 100644
+index 78be4512112..a1708b5f836 100644
@@ -22 +23 @@
-@@ -537,7 +537,7 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
+@@ -548,7 +548,7 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
@@ -31 +32 @@
-@@ -562,7 +562,7 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
+@@ -573,7 +573,7 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
@@ -40 +41 @@
-@@ -624,6 +624,9 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
+@@ -635,6 +635,9 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
@@ -50 +51 @@
-@@ -2385,7 +2388,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
+@@ -2413,7 +2416,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
@@ -59 +60 @@
-@@ -2396,7 +2399,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
+@@ -2424,7 +2427,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
@@ -68 +69 @@
-@@ -2404,7 +2407,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
+@@ -2432,7 +2435,7 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
@@ -77 +78 @@
-@@ -2500,6 +2503,8 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)
+@@ -2524,6 +2527,8 @@ dpaa_dev_init(struct rte_eth_dev *eth_dev)


More information about the stable mailing list