From: Joseph Wong <[email protected]>
In bnxt_alloc_vf_info(), vf_info pointer needs to be assigned prior to
the nested allocation operations. If an error occurs during the nested
allocations, the cleanup function bnxt_free_vf_info() needs the vf_info
pointer to correctly free the resources.
Fixes: 01406837bf49 ("net/bnxt: fix VF info allocation")
Cc: [email protected]
Signed-off-by: Joseph Wong <[email protected]>
Signed-off-by: Mohammad Shuab Siddique <[email protected]>
---
drivers/net/bnxt/bnxt_hwrm.c | 3 +--
1 file changed, 1 insertion(+), 2 deletions(-)
diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
index dee35758e1..52c75c64de 100644
--- a/drivers/net/bnxt/bnxt_hwrm.c
+++ b/drivers/net/bnxt/bnxt_hwrm.c
@@ -1079,6 +1079,7 @@ static int bnxt_alloc_vf_info(struct bnxt *bp, uint16_t
max_vfs)
}
bp->pf->max_vfs = max_vfs;
+ bp->pf->vf_info = vf_info;
for (i = 0; i < max_vfs; i++) {
vf_info[i].fid = bp->pf->first_vf_id + i;
vf_info[i].vlan_table = rte_zmalloc("VF VLAN table",
@@ -1100,8 +1101,6 @@ static int bnxt_alloc_vf_info(struct bnxt *bp, uint16_t
max_vfs)
STAILQ_INIT(&vf_info[i].filter);
}
- bp->pf->vf_info = vf_info;
-
return 0;
err:
bnxt_free_vf_info(bp);
--
2.47.3