net/enic: release port upon close

Set RTE_ETH_DEV_CLOSE_REMOVE upon probe so rte_eth_dev_close() can
later free port resources including mac_addrs.

Signed-off-by: Hyong Youb Kim <hyonkim@cisco.com>
Reviewed-by: John Daley <johndale@cisco.com>
This commit is contained in:
Hyong Youb Kim 2018-12-10 10:28:53 -08:00 committed by Ferruh Yigit
parent 46df488b27
commit 7f34bb5202
3 changed files with 7 additions and 3 deletions

View File

@ -54,6 +54,10 @@ New Features
Also, make sure to start the actual text at the margin.
=========================================================
* **Updated the enic driver.**
* Added support for ``RTE_ETH_DEV_CLOSE_REMOVE`` flag.
Removed Items
-------------

View File

@ -1048,6 +1048,8 @@ static int eth_enicpmd_dev_init(struct rte_eth_dev *eth_dev)
eth_dev->rx_pkt_burst = &enic_recv_pkts;
eth_dev->tx_pkt_burst = &enic_xmit_pkts;
eth_dev->tx_pkt_prepare = &enic_prep_pkts;
/* Let rte_eth_dev_close() release the port resources */
eth_dev->data->dev_flags |= RTE_ETH_DEV_CLOSE_REMOVE;
pdev = RTE_ETH_DEV_TO_PCI(eth_dev);
rte_eth_copy_pci_info(eth_dev, pdev);

View File

@ -1379,12 +1379,10 @@ int enic_get_link_status(struct enic *enic)
static void enic_dev_deinit(struct enic *enic)
{
struct rte_eth_dev *eth_dev = enic->rte_dev;
/* stop link status checking */
vnic_dev_notify_unset(enic->vdev);
rte_free(eth_dev->data->mac_addrs);
/* mac_addrs is freed by rte_eth_dev_release_port() */
rte_free(enic->cq);
rte_free(enic->intr);
rte_free(enic->rq);