[PATCH] drivers/net: remove redundant callbacks cleanup

Thomas Monjalon thomas at monjalon.net
Wed Feb 18 11:45:24 CET 2026


Some callbacks are set to NULL in the release process.
It is not needed as it is already done in rte_eth_dev_release_port()
called by rte_eth_dev_close(), rte_eth_dev_destroy()
or rte_eth_dev_pci_generic_remove().

Signed-off-by: Thomas Monjalon <thomas at monjalon.net>
---
 drivers/net/hinic3/hinic3_ethdev.c    |  4 ----
 drivers/net/ionic/ionic_ethdev.c      |  5 -----
 drivers/net/ngbe/ngbe_ethdev_vf.c     |  3 ---
 drivers/net/octeon_ep/otx_ep_ethdev.c | 10 +---------
 drivers/net/sfc/sfc_repr.c            |  4 ----
 drivers/net/txgbe/txgbe_ethdev_vf.c   |  3 ---
 6 files changed, 1 insertion(+), 28 deletions(-)

diff --git a/drivers/net/hinic3/hinic3_ethdev.c b/drivers/net/hinic3/hinic3_ethdev.c
index 0e25175ba1..0f72728a95 100644
--- a/drivers/net/hinic3/hinic3_ethdev.c
+++ b/drivers/net/hinic3/hinic3_ethdev.c
@@ -2044,10 +2044,6 @@ hinic3_dev_release(struct rte_eth_dev *eth_dev)
 	hinic3_free_nic_hwdev(nic_dev->hwdev);
 	hinic3_free_hwdev(nic_dev->hwdev);
 
-	eth_dev->rx_pkt_burst = NULL;
-	eth_dev->tx_pkt_burst = NULL;
-	eth_dev->dev_ops = NULL;
-
 	rte_free(nic_dev->hwdev);
 	nic_dev->hwdev = NULL;
 }
diff --git a/drivers/net/ionic/ionic_ethdev.c b/drivers/net/ionic/ionic_ethdev.c
index 6e9cd5f7eb..d2888d9650 100644
--- a/drivers/net/ionic/ionic_ethdev.c
+++ b/drivers/net/ionic/ionic_ethdev.c
@@ -1112,11 +1112,6 @@ eth_ionic_dev_uninit(struct rte_eth_dev *eth_dev)
 	if (eth_dev->state != RTE_ETH_DEV_UNUSED)
 		ionic_dev_close(eth_dev);
 
-	eth_dev->dev_ops = NULL;
-	eth_dev->rx_pkt_burst = NULL;
-	eth_dev->tx_pkt_burst = NULL;
-	eth_dev->tx_pkt_prepare = NULL;
-
 	return 0;
 }
 
diff --git a/drivers/net/ngbe/ngbe_ethdev_vf.c b/drivers/net/ngbe/ngbe_ethdev_vf.c
index e575c47049..6406df40d0 100644
--- a/drivers/net/ngbe/ngbe_ethdev_vf.c
+++ b/drivers/net/ngbe/ngbe_ethdev_vf.c
@@ -746,9 +746,6 @@ ngbevf_dev_close(struct rte_eth_dev *dev)
 	 **/
 	ngbevf_remove_mac_addr(dev, 0);
 
-	dev->rx_pkt_burst = NULL;
-	dev->tx_pkt_burst = NULL;
-
 	/* Disable the interrupts for VF */
 	ngbevf_intr_disable(dev);
 
diff --git a/drivers/net/octeon_ep/otx_ep_ethdev.c b/drivers/net/octeon_ep/otx_ep_ethdev.c
index f7f927a4e7..99be30523a 100644
--- a/drivers/net/octeon_ep/otx_ep_ethdev.c
+++ b/drivers/net/octeon_ep/otx_ep_ethdev.c
@@ -656,12 +656,8 @@ otx_ep_dev_close(struct rte_eth_dev *eth_dev)
 	struct otx_ep_device *otx_epvf;
 	uint32_t num_queues, q_no;
 
-	if (rte_eal_process_type() != RTE_PROC_PRIMARY) {
-		eth_dev->dev_ops = NULL;
-		eth_dev->rx_pkt_burst = NULL;
-		eth_dev->tx_pkt_burst = NULL;
+	if (rte_eal_process_type() != RTE_PROC_PRIMARY)
 		return 0;
-	}
 
 	otx_epvf = OTX_EP_DEV(eth_dev);
 	otx_ep_mbox_send_dev_exit(eth_dev);
@@ -731,10 +727,6 @@ otx_ep_eth_dev_uninit(struct rte_eth_dev *eth_dev)
 	if (rte_eal_process_type() == RTE_PROC_PRIMARY)
 		otx_ep_mbox_uninit(eth_dev);
 
-	eth_dev->dev_ops = NULL;
-	eth_dev->rx_pkt_burst = NULL;
-	eth_dev->tx_pkt_burst = NULL;
-
 	return 0;
 }
 
diff --git a/drivers/net/sfc/sfc_repr.c b/drivers/net/sfc/sfc_repr.c
index fbb5f58a8e..4ccdf8358b 100644
--- a/drivers/net/sfc/sfc_repr.c
+++ b/drivers/net/sfc/sfc_repr.c
@@ -820,10 +820,6 @@ sfc_repr_dev_close(struct rte_eth_dev *dev)
 
 	sfc_mae_clear_switch_port(srs->switch_domain_id, srs->switch_port_id);
 
-	dev->rx_pkt_burst = NULL;
-	dev->tx_pkt_burst = NULL;
-	dev->dev_ops = NULL;
-
 	sfc_repr_unlock(sr);
 	sfc_repr_lock_fini(sr);
 
diff --git a/drivers/net/txgbe/txgbe_ethdev_vf.c b/drivers/net/txgbe/txgbe_ethdev_vf.c
index f6fd2b1557..39a5fff65c 100644
--- a/drivers/net/txgbe/txgbe_ethdev_vf.c
+++ b/drivers/net/txgbe/txgbe_ethdev_vf.c
@@ -862,9 +862,6 @@ txgbevf_dev_close(struct rte_eth_dev *dev)
 	 **/
 	txgbevf_remove_mac_addr(dev, 0);
 
-	dev->rx_pkt_burst = NULL;
-	dev->tx_pkt_burst = NULL;
-
 	/* Disable the interrupts for VF */
 	txgbevf_intr_disable(dev);
 
-- 
2.52.0



More information about the dev mailing list