[dpdk-dev] [PATCH v8 03/12] eal: Fix memory leaks and needless increment of pci_map_addr
Tetsuya Mukawa
mukawa at igel.co.jp
Wed Jul 8 04:42:24 CEST 2015
On 2015/07/07 17:04, David Marchand wrote:
> Hello Tetsuya,
>
> Little comment below for this patch.
>
> On Mon, Jul 6, 2015 at 8:24 AM, Tetsuya Mukawa <mukawa at igel.co.jp
> <mailto:mukawa at igel.co.jp>> wrote:
>
>
> diff --git a/lib/librte_eal/bsdapp/eal/eal_pci.c
> b/lib/librte_eal/bsdapp/eal/eal_pci.c
> index a63d450..63758c7 100644
> --- a/lib/librte_eal/bsdapp/eal/eal_pci.c
> +++ b/lib/librte_eal/bsdapp/eal/eal_pci.c
> @@ -202,7 +202,7 @@ pci_uio_map_resource(struct rte_pci_device *dev)
> uint64_t offset;
> uint64_t pagesz;
> struct rte_pci_addr *loc = &dev->addr;
> - struct uio_resource *uio_res;
> + struct uio_resource *uio_res = NULL;
> struct uio_res_list *uio_res_list =
> RTE_TAILQ_CAST(rte_uio_tailq.head,
> uio_res_list);
> struct uio_map *maps;
> [snip]
> @@ -275,6 +274,16 @@ pci_uio_map_resource(struct rte_pci_device *dev)
> TAILQ_INSERT_TAIL(uio_res_list, uio_res, next);
>
> return 0;
> +
> +error:
> + if (uio_res)
> + rte_free(uio_res);
>
>
> As long as uio_res is initialized to NULL, no need to check.
> rte_free() behaves the same as free().
>
Oh, I didn't notice it. Thanks.
>
> diff --git a/lib/librte_eal/linuxapp/eal/eal_pci_uio.c
> b/lib/librte_eal/linuxapp/eal/eal_pci_uio.c
> index 37dc936..4e50533 100644
> --- a/lib/librte_eal/linuxapp/eal/eal_pci_uio.c
> +++ b/lib/librte_eal/linuxapp/eal/eal_pci_uio.c
> [snip]
> @@ -400,6 +397,25 @@ pci_uio_map_resource(struct rte_pci_device *dev)
> TAILQ_INSERT_TAIL(uio_res_list, uio_res, next);
>
> return 0;
> +
> +error:
> + for (i = 0; i < map_idx; i++) {
> + pci_unmap_resource(uio_res->maps[i].addr,
> + (size_t)uio_res->maps[i].size);
> + rte_free(maps[i].path);
> + }
> + if (uio_res)
> + rte_free(uio_res);
>
>
> Idem.
>
>
> With this,
> Acked-by: David Marchand <david.marchand at 6wind.com
> <mailto:david.marchand at 6wind.com>>
>
I will fix codes like above.
Tetsuya
> --
> David Marchand
More information about the dev
mailing list