[dpdk-stable] [dpdk-dev] [PATCH] net/bnxt: fix memory leak when mapping failure

Ajit Khaparde ajit.khaparde at broadcom.com
Tue Dec 8 21:58:06 CET 2020


On Mon, Nov 30, 2020 at 5:00 PM wangyunjian <wangyunjian at huawei.com> wrote:
>
> From: Yunjian Wang <wangyunjian at huawei.com>
>
> 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: 19e6af01bb36 ("net/bnxt: support get/set EEPROM")
> Cc: stable at dpdk.org
>
> Signed-off-by: Yunjian Wang <wangyunjian at huawei.com>
Patch applied to dpdk-next-net-brcm. Thanks

> ---
>  drivers/net/bnxt/bnxt_hwrm.c | 3 +++
>  1 file changed, 3 insertions(+)
>
> diff --git a/drivers/net/bnxt/bnxt_hwrm.c b/drivers/net/bnxt/bnxt_hwrm.c
> index 24c33185b4..ebbf504c0c 100644
> --- a/drivers/net/bnxt/bnxt_hwrm.c
> +++ b/drivers/net/bnxt/bnxt_hwrm.c
> @@ -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;
> --
> 2.18.1
>

-- 
This electronic communication and the information and any files transmitted 
with it, or attached to it, are confidential and are intended solely for 
the use of the individual or entity to whom it is addressed and may contain 
information that is confidential, legally privileged, protected by privacy 
laws, or otherwise restricted from disclosure to anyone else. If you are 
not the intended recipient or the person responsible for delivering the 
e-mail to the intended recipient, you are hereby notified that any use, 
copying, distributing, dissemination, forwarding, printing, or copying of 
this e-mail is strictly prohibited. If you received this e-mail in error, 
please return the e-mail to the sender, delete it from your computer, and 
destroy any printed copy of it.


More information about the stable mailing list