Ensure the Tx confirmation FQ is also cleaned up during device
stop, preventing stale FQ state on subsequent device restarts.

Signed-off-by: Hemant Agrawal <[email protected]>
---
 drivers/net/dpaa/dpaa_ethdev.c | 7 +++++++
 1 file changed, 7 insertions(+)

diff --git a/drivers/net/dpaa/dpaa_ethdev.c b/drivers/net/dpaa/dpaa_ethdev.c
index e1856580b9..b427b1df13 100644
--- a/drivers/net/dpaa/dpaa_ethdev.c
+++ b/drivers/net/dpaa/dpaa_ethdev.c
@@ -573,6 +573,7 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
 
        /* release configuration memory */
        rte_free(dpaa_intf->fc_conf);
+       dpaa_intf->fc_conf = NULL;
 
        /** Release congestion Groups after releasing FQIDs*/
        /* Release RX congestion Groups */
@@ -642,6 +643,10 @@ static int dpaa_eth_dev_close(struct rte_eth_dev *dev)
 
        rte_free(dpaa_intf->tx_queues);
        dpaa_intf->tx_queues = NULL;
+
+       rte_free(dpaa_intf->tx_conf_queues);
+       dpaa_intf->tx_conf_queues = NULL;
+
        if (dpaa_intf->port_handle) {
                ret = dpaa_fm_deconfig(dpaa_intf, fif);
                if (ret) {
@@ -2537,6 +2542,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.25.1

Reply via email to