From 71a2b9561cdf290f459cf04434ef2c816a54d5a2 Mon Sep 17 00:00:00 2001 From: Sachin Saxena Date: Tue, 29 Sep 2020 01:14:18 +0200 Subject: [PATCH] net/enetc: release port upon close With removal of old close behavior, the private port resources must be released in the .dev_close callback. Freeing of port private resources is moved from the ".remove(device)" to the ".dev_close(port)" operation Signed-off-by: Sachin Saxena Acked-by: Stephen Hemminger --- drivers/net/enetc/enetc_ethdev.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/drivers/net/enetc/enetc_ethdev.c b/drivers/net/enetc/enetc_ethdev.c index bdb32762ce..afb658df3d 100644 --- a/drivers/net/enetc/enetc_ethdev.c +++ b/drivers/net/enetc/enetc_ethdev.c @@ -565,6 +565,9 @@ enetc_dev_close(struct rte_eth_dev *dev) } dev->data->nb_tx_queues = 0; + if (rte_eal_iova_mode() == RTE_IOVA_PA) + dpaax_iova_table_depopulate(); + return 0; } @@ -874,6 +877,7 @@ enetc_dev_init(struct rte_eth_dev *eth_dev) eth_dev->dev_ops = &enetc_ops; eth_dev->rx_pkt_burst = &enetc_recv_pkts; eth_dev->tx_pkt_burst = &enetc_xmit_pkts; + eth_dev->data->dev_flags |= RTE_ETH_DEV_CLOSE_REMOVE; /* Retrieving and storing the HW base address of device */ hw->hw.reg = (void *)pci_dev->mem_resource[0].addr; @@ -916,14 +920,11 @@ enetc_dev_init(struct rte_eth_dev *eth_dev) } static int -enetc_dev_uninit(struct rte_eth_dev *eth_dev __rte_unused) +enetc_dev_uninit(struct rte_eth_dev *eth_dev) { PMD_INIT_FUNC_TRACE(); - if (rte_eal_iova_mode() == RTE_IOVA_PA) - dpaax_iova_table_depopulate(); - - return 0; + return enetc_dev_close(eth_dev); } static int -- 2.20.1