net/bnxt: fix memory leak when mapping fails
We allocated memory for the 'buf' when sending message to HWRM,
but we don't free it when mapping the address to IO address
fails. It will lead to memory leak.
Fixes: 19e6af01bb
("net/bnxt: support get/set EEPROM")
Cc: stable@dpdk.org
Signed-off-by: Yunjian Wang <wangyunjian@huawei.com>
Reviewed-by: Ajit Khaparde <ajit.khaparde@broadcom.com>
This commit is contained in:
parent
495b2ed40a
commit
b9f0ad21f8
@ -4320,6 +4320,7 @@ int bnxt_get_nvram_directory(struct bnxt *bp, uint32_t len, uint8_t *data)
|
||||
return -ENOMEM;
|
||||
dma_handle = rte_malloc_virt2iova(buf);
|
||||
if (dma_handle == RTE_BAD_IOVA) {
|
||||
rte_free(buf);
|
||||
PMD_DRV_LOG(ERR,
|
||||
"unable to map response address to physical memory\n");
|
||||
return -ENOMEM;
|
||||
@ -4354,6 +4355,7 @@ int bnxt_hwrm_get_nvram_item(struct bnxt *bp, uint32_t index,
|
||||
|
||||
dma_handle = rte_malloc_virt2iova(buf);
|
||||
if (dma_handle == RTE_BAD_IOVA) {
|
||||
rte_free(buf);
|
||||
PMD_DRV_LOG(ERR,
|
||||
"unable to map response address to physical memory\n");
|
||||
return -ENOMEM;
|
||||
@ -4407,6 +4409,7 @@ int bnxt_hwrm_flash_nvram(struct bnxt *bp, uint16_t dir_type,
|
||||
|
||||
dma_handle = rte_malloc_virt2iova(buf);
|
||||
if (dma_handle == RTE_BAD_IOVA) {
|
||||
rte_free(buf);
|
||||
PMD_DRV_LOG(ERR,
|
||||
"unable to map response address to physical memory\n");
|
||||
return -ENOMEM;
|
||||
|
Loading…
Reference in New Issue
Block a user