From c0773b56c2bc757589dd70411f8b118e55f78031 Mon Sep 17 00:00:00 2001 From: Qiming Chen Date: Sat, 21 Aug 2021 14:30:08 +0800 Subject: [PATCH] net/i40e/base: fix resource leakage [ upstream commit 071eb26fb53914aafda4aa33356f65d2c7a2e4e0 ] In the i40e_init_arq function, when the i40e_config_arq_regs function returns from processing failure, the previously applied arq_bufs resource is not released, which leads to leakage. The patch is processed in the same way as the i40e_init_asq function, maintaining a unified coding style. Fixes: 49ea51605be4 ("net/i40e/base: gracefully clean the resources") Signed-off-by: Qiming Chen Acked-by: Qi Zhang --- drivers/net/i40e/base/i40e_adminq.c | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/drivers/net/i40e/base/i40e_adminq.c b/drivers/net/i40e/base/i40e_adminq.c index 584da0383c..0c07ff0045 100644 --- a/drivers/net/i40e/base/i40e_adminq.c +++ b/drivers/net/i40e/base/i40e_adminq.c @@ -468,7 +468,7 @@ enum i40e_status_code i40e_init_arq(struct i40e_hw *hw) /* initialize base registers */ ret_code = i40e_config_arq_regs(hw); if (ret_code != I40E_SUCCESS) - goto init_adminq_free_rings; + goto init_config_regs; /* success! */ hw->aq.arq.count = hw->aq.num_arq_entries; @@ -476,6 +476,10 @@ enum i40e_status_code i40e_init_arq(struct i40e_hw *hw) init_adminq_free_rings: i40e_free_adminq_arq(hw); + return ret_code; + +init_config_regs: + i40e_free_arq_bufs(hw); init_adminq_exit: return ret_code;