[dpdk-stable] [PATCH] net/ice: fix freeing queues on DCF device reset
    dapengx.yu at intel.com 
    dapengx.yu at intel.com
       
    Mon Oct 11 09:25:46 CEST 2021
    
    
  
From: Dapeng Yu <dapengx.yu at intel.com>
In function ice_dcf_stop_queues(), RX queues and TX queues are actually
not freed, so their pointers shall not be set to NULL when queues are
stopped.
This patch adds function call to free queues on DCF device close and
reset, which also set the RX and TX queues' pointers to NULL on freeing
queues, and avoids referring to the released resource when device is
started again.
Fixes: 1a86f4dbdf42 ("net/ice: support DCF device reset")
Cc: stable at dpdk.org
Signed-off-by: Dapeng Yu <dapengx.yu at intel.com>
---
 drivers/net/ice/ice_dcf_ethdev.c | 4 ++--
 1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/drivers/net/ice/ice_dcf_ethdev.c b/drivers/net/ice/ice_dcf_ethdev.c
index 4e4cdbcd7d..d62ab2694d 100644
--- a/drivers/net/ice/ice_dcf_ethdev.c
+++ b/drivers/net/ice/ice_dcf_ethdev.c
@@ -603,7 +603,6 @@ ice_dcf_stop_queues(struct rte_eth_dev *dev)
 		txq->tx_rel_mbufs(txq);
 		reset_tx_queue(txq);
 		dev->data->tx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
-		dev->data->tx_queues[i] = NULL;
 	}
 	for (i = 0; i < dev->data->nb_rx_queues; i++) {
 		rxq = dev->data->rx_queues[i];
@@ -612,7 +611,6 @@ ice_dcf_stop_queues(struct rte_eth_dev *dev)
 		rxq->rx_rel_mbufs(rxq);
 		reset_rx_queue(rxq);
 		dev->data->rx_queue_state[i] = RTE_ETH_QUEUE_STATE_STOPPED;
-		dev->data->rx_queues[i] = NULL;
 	}
 }
 
@@ -905,6 +903,8 @@ ice_dcf_dev_close(struct rte_eth_dev *dev)
 
 	(void)ice_dcf_dev_stop(dev);
 
+	ice_free_queues(dev);
+
 	ice_dcf_free_repr_info(adapter);
 	ice_dcf_uninit_parent_adapter(dev);
 	ice_dcf_uninit_hw(dev, &adapter->real_hw);
-- 
2.27.0
    
    
More information about the stable
mailing list