From daf3332e11ed7ad6cc12e0aa69cbb8b602bc5685 Mon Sep 17 00:00:00 2001 From: Qiming Chen Date: Sat, 21 Aug 2021 17:44:35 +0800 Subject: [PATCH] net/i40e: fix device startup resource release In the eth_i40e_dev_init function, the tunnel and ethertype hash table resource release interface should be rte_hash_free instead of rte_free, and the previously registered interrupt handling function also needs to be removed from the interrupt list. The patch is amended to use the correct interface to release the hash table resource and release the interrupt handling function at the same time. Fixes: 425c3325f0b0 ("net/i40e: store tunnel filter") Fixes: 5c53c82c8174 ("net/i40e: store flow director filter") Cc: stable@dpdk.org Signed-off-by: Qiming Chen Acked-by: Qi Zhang --- drivers/net/i40e/i40e_ethdev.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/drivers/net/i40e/i40e_ethdev.c b/drivers/net/i40e/i40e_ethdev.c index 7b230e2ed1..7a2a8281d2 100644 --- a/drivers/net/i40e/i40e_ethdev.c +++ b/drivers/net/i40e/i40e_ethdev.c @@ -1760,12 +1760,14 @@ eth_i40e_dev_init(struct rte_eth_dev *dev, void *init_params __rte_unused) return 0; err_init_fdir_filter_list: - rte_free(pf->tunnel.hash_table); + rte_hash_free(pf->tunnel.hash_table); rte_free(pf->tunnel.hash_map); err_init_tunnel_filter_list: - rte_free(pf->ethertype.hash_table); + rte_hash_free(pf->ethertype.hash_table); rte_free(pf->ethertype.hash_map); err_init_ethtype_filter_list: + rte_intr_callback_unregister(intr_handle, + i40e_dev_interrupt_handler, dev); rte_free(dev->data->mac_addrs); dev->data->mac_addrs = NULL; err_mac_alloc: -- 2.39.5