[v2,8/8] net/nfp: fix resource leak for VF
Checks
Commit Message
Fix the resource leak problem in the logic of VF.
Fixes: f26e82397f6d ("net/nfp: implement xstats")
Cc: james.hershaw@corigine.com
Cc: stable@dpdk.org
Signed-off-by: Chaoyong He <chaoyong.he@corigine.com>
Reviewed-by: Long Wu <long.wu@corigine.com>
Reviewed-by: Peng Zhang <peng.zhang@corigine.com>
---
drivers/net/nfp/nfp_ethdev_vf.c | 10 +++++++---
1 file changed, 7 insertions(+), 3 deletions(-)
@@ -160,13 +160,17 @@ nfp_netvf_set_link_down(struct rte_eth_dev *dev __rte_unused)
static int
nfp_netvf_close(struct rte_eth_dev *dev)
{
+ struct nfp_net_hw *net_hw;
struct rte_pci_device *pci_dev;
if (rte_eal_process_type() != RTE_PROC_PRIMARY)
return 0;
+ net_hw = dev->data->dev_private;
pci_dev = RTE_ETH_DEV_TO_PCI(dev);
+ rte_free(net_hw->eth_xstats_base);
+
/*
* We assume that the DPDK application is stopping all the
* threads/queues before calling the device close function.
@@ -323,7 +327,7 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev)
if (eth_dev->data->mac_addrs == NULL) {
PMD_INIT_LOG(ERR, "Failed to space for MAC address");
err = -ENOMEM;
- goto dev_err_ctrl_map;
+ goto free_xstats;
}
nfp_read_mac(hw);
@@ -360,8 +364,8 @@ nfp_netvf_init(struct rte_eth_dev *eth_dev)
return 0;
-dev_err_ctrl_map:
- nfp_cpp_area_free(net_hw->ctrl_area);
+free_xstats:
+ rte_free(net_hw->eth_xstats_base);
return err;
}