From: Qiushi Wu <[email protected]>
In function nfp_abm_vnic_set_mac, pointer nsp is allocated by nfp_nsp_open.
But when nfp_nsp_has_hwinfo_lookup fail, the pointer is not released,
which can lead to a memory leak bug. Fix this issue by adding
nfp_nsp_close(nsp) in the error path.
Signed-off-by: Qiushi Wu <[email protected]>
---
drivers/net/ethernet/netronome/nfp/abm/main.c | 1 +
1 file changed, 1 insertion(+)
diff --git a/drivers/net/ethernet/netronome/nfp/abm/main.c b/drivers/net/ethernet/netronome/nfp/abm/main.c
index 9183b3e85d21..354efffac0f9 100644
--- a/drivers/net/ethernet/netronome/nfp/abm/main.c
+++ b/drivers/net/ethernet/netronome/nfp/abm/main.c
@@ -283,6 +283,7 @@ nfp_abm_vnic_set_mac(struct nfp_pf *pf, struct nfp_abm *abm, struct nfp_net *nn,
if (!nfp_nsp_has_hwinfo_lookup(nsp)) {
nfp_warn(pf->cpp, "NSP doesn't support PF MAC generation\n");
eth_hw_addr_random(nn->dp.netdev);
+ nfp_nsp_close(nsp);
return;
}
--
2.17.1
…
> Fix this issue by adding nfp_nsp_close(nsp) in the error path.
How do you think about a wording variant like the following?
Subject:
[PATCH v2] nfp: abm: Fix incomplete release of system resources in nfp_abm_vnic_set_mac()
Change description:
…
Thus add a call of the function “nfp_nsp_close” for the completion
of the exception handling.
…
> +++ b/drivers/net/ethernet/netronome/nfp/abm/main.c
> @@ -283,6 +283,7 @@ nfp_abm_vnic_set_mac(struct nfp_pf *pf, struct nfp_abm *abm, struct nfp_net *nn,
> if (!nfp_nsp_has_hwinfo_lookup(nsp)) {
> nfp_warn(pf->cpp, "NSP doesn't support PF MAC generation\n");
> eth_hw_addr_random(nn->dp.netdev);
> + nfp_nsp_close(nsp);
> return;
> }
I suggest to reconsider the order for resource clean-up function calls
a bit more.
+ nfp_nsp_close(nsp);
- eth_hw_addr_random(nn->dp.netdev);
- return;
+ goto generate_random_address;
Should such a jump target be added in another update step?
Would you like to add the tag “Fixes”?
Regards,
Markus
On Sat, 2 May 2020 17:42:59 -0500 [email protected] wrote:
> From: Qiushi Wu <[email protected]>
>
> In function nfp_abm_vnic_set_mac, pointer nsp is allocated by nfp_nsp_open.
> But when nfp_nsp_has_hwinfo_lookup fail, the pointer is not released,
> which can lead to a memory leak bug. Fix this issue by adding
> nfp_nsp_close(nsp) in the error path.
>
> Signed-off-by: Qiushi Wu <[email protected]>
Fixes: f6e71efdf9fb1 ("nfp: abm: look up MAC addresses via management FW")
Acked-by: Jakub Kicinski <[email protected]>
From: [email protected]
Date: Sat, 2 May 2020 17:42:59 -0500
> From: Qiushi Wu <[email protected]>
>
> In function nfp_abm_vnic_set_mac, pointer nsp is allocated by nfp_nsp_open.
> But when nfp_nsp_has_hwinfo_lookup fail, the pointer is not released,
> which can lead to a memory leak bug. Fix this issue by adding
> nfp_nsp_close(nsp) in the error path.
>
> Signed-off-by: Qiushi Wu <[email protected]>
Applied and queued up for -stable, thanks.