From 5d4a54fd1646585adfedb1675e78a513cf194b25 Mon Sep 17 00:00:00 2001 From: Yunjian Wang Date: Tue, 28 Jul 2020 21:11:12 +0800 Subject: [PATCH] net/ice: fix memory leak when releasing VSI At the end of the vsi release, we should free the 'rss_lut' and 'rss_key' for the vsi. Fixes: 50370662b727 ("net/ice: support device and queue ops") Cc: stable@dpdk.org Signed-off-by: Yunjian Wang Acked-by: Qi Zhang --- drivers/net/ice/ice_ethdev.c | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/drivers/net/ice/ice_ethdev.c b/drivers/net/ice/ice_ethdev.c index c4c0e638f2..a29c9addcf 100644 --- a/drivers/net/ice/ice_ethdev.c +++ b/drivers/net/ice/ice_ethdev.c @@ -2280,9 +2280,10 @@ ice_release_vsi(struct ice_vsi *vsi) struct ice_hw *hw; struct ice_vsi_ctx vsi_ctx; enum ice_status ret; + int error = 0; if (!vsi) - return 0; + return error; hw = ICE_VSI_TO_HW(vsi); @@ -2295,12 +2296,13 @@ ice_release_vsi(struct ice_vsi *vsi) ret = ice_free_vsi(hw, vsi->idx, &vsi_ctx, false, NULL); if (ret != ICE_SUCCESS) { PMD_INIT_LOG(ERR, "Failed to free vsi by aq, %u", vsi->vsi_id); - rte_free(vsi); - return -1; + error = -1; } + rte_free(vsi->rss_lut); + rte_free(vsi->rss_key); rte_free(vsi); - return 0; + return error; } void -- 2.20.1