[dpdk-dev] [PATCH v8 05/12] eal: Fix uio mapping differences between linuxapp and bsdapp
Tetsuya Mukawa
mukawa at igel.co.jp
Wed Jul 8 04:42:32 CEST 2015
On 2015/07/07 17:04, David Marchand wrote:
> 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 21d1e66..92d9886 100644
> --- a/lib/librte_eal/bsdapp/eal/eal_pci.c
> +++ b/lib/librte_eal/bsdapp/eal/eal_pci.c
>
> @@ -170,19 +154,33 @@ pci_uio_map_secondary(struct rte_pci_device
> *dev)
> TAILQ_FOREACH(uio_res, uio_res_list, next) {
>
> /* skip this element if it doesn't match our PCI
> address */
> - if (memcmp(&uio_res->pci_addr, &dev->addr,
> sizeof(dev->addr)))
> + if (rte_eal_compare_pci_addr(&uio_res->pci_addr,
> &dev->addr))
> continue;
>
> for (i = 0; i != uio_res->nb_maps; i++) {
> - if (pci_map_resource(uio_res->maps[i].addr,
> - uio_res->path,
> -
> (off_t)uio_res->maps[i].offset,
> -
> (size_t)uio_res->maps[i].size)
> - != uio_res->maps[i].addr) {
> + /*
> + * open devname, to mmap it
> + */
> + fd = open(uio_res->maps[i].path, O_RDWR);
> + if (fd < 0) {
> + RTE_LOG(ERR, EAL, "Cannot open %s:
> %s\n",
> + uio_res->maps[i].path,
> strerror(errno));
> + return -1;
> + }
> +
> + void *mapaddr =
> pci_map_resource(uio_res->maps[i].addr,
> + fd,
> (off_t)uio_res->maps[i].offset,
> +
> (size_t)uio_res->maps[i].size, 0);
>
>
> I suppose you can close fd here
Yes, I will move close() here.
Tetsuya
>
>
> + if (mapaddr != uio_res->maps[i].addr) {
> RTE_LOG(ERR, EAL,
> - "Cannot mmap device
> resource\n");
> + "Cannot mmap device
> resource file %s to address: %p\n",
> + uio_res->maps[i].path,
> + uio_res->maps[i].addr);
> + close(fd);
>
>
> and remove it from here
>
> return -1;
> }
> + /* fd is not needed in slave process,
> close it */
> + close(fd);
>
>
> and here.
>
>
> The rest is ok for me.
> Acked-by: David Marchand <david.marchand at 6wind.com
> <mailto:david.marchand at 6wind.com>>
>
> --
> David Marchand
More information about the dev
mailing list