net/i40e/base: fix the resource leakage problem
Checks
Commit Message
From: Qiming Chen <chenqiming_huawei@163.com>
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")
Cc: stable@dpdk.org
Signed-off-by: Qiming Chen <chenqiming_huawei@163.com>
---
drivers/net/i40e/base/i40e_adminq.c | 6 +++++-
1 file changed, 5 insertions(+), 1 deletion(-)
Comments
> -----Original Message-----
> From: dev <dev-bounces@dpdk.org> On Behalf Of
> chenqiming_huawei@163.com
> Sent: Saturday, August 21, 2021 2:30 PM
> To: dev@dpdk.org
> Cc: Xing, Beilei <beilei.xing@intel.com>; Qiming Chen
> <chenqiming_huawei@163.com>; stable@dpdk.org
> Subject: [dpdk-dev] [PATCH] net/i40e/base: fix the resource leakage problem
>
> From: Qiming Chen <chenqiming_huawei@163.com>
>
> 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")
> Cc: stable@dpdk.org
>
> Signed-off-by: Qiming Chen <chenqiming_huawei@163.com>
Acked-by: Qi Zhang <qi.z.zhang@intel.com>
Applied to dpdk-next-net-intel.
Thanks
Qi
@@ -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;