All of lore.kernel.org
 help / color / mirror / Atom feed
From: David Marchand <david.marchand@6wind.com>
To: Tetsuya Mukawa <mukawa@igel.co.jp>
Cc: "dev@dpdk.org" <dev@dpdk.org>
Subject: Re: [PATCH v8 12/12] eal: Consolidate rte_eal_pci_probe/close_one_driver() of linuxapp and bsdapp
Date: Tue, 7 Jul 2015 10:07:48 +0200	[thread overview]
Message-ID: <CALwxeUuRAD92dkRLhRajDQB19wv32-XNNs-mwr1v0hkv2wtD3g@mail.gmail.com> (raw)
In-Reply-To: <1436163861-3025-13-git-send-email-mukawa@igel.co.jp>

On Mon, Jul 6, 2015 at 8:24 AM, Tetsuya Mukawa <mukawa@igel.co.jp> wrote:

> From: "Tetsuya.Mukawa" <mukawa@igel.co.jp>
>
> This patch consolidates below functions, and implements these in common
> eal code.
>  - rte_eal_pci_probe_one_driver()
>  - rte_eal_pci_close_one_driver()
>
> Signed-off-by: Tetsuya Mukawa <mukawa@igel.co.jp>
> ---
>  lib/librte_eal/bsdapp/eal/eal_pci.c    |  67 +--------------
>  lib/librte_eal/common/eal_common_pci.c | 133
> +++++++++++++++++++++++++++++-
>  lib/librte_eal/common/eal_private.h    |  39 +--------
>  lib/librte_eal/linuxapp/eal/eal_pci.c  | 143
> +--------------------------------
>  4 files changed, 136 insertions(+), 246 deletions(-)
>
> diff --git a/lib/librte_eal/bsdapp/eal/eal_pci.c
> b/lib/librte_eal/bsdapp/eal/eal_pci.c
> index a27dca3..b7c34f4 100644
> --- a/lib/librte_eal/bsdapp/eal/eal_pci.c
> +++ b/lib/librte_eal/bsdapp/eal/eal_pci.c
> @@ -85,7 +85,7 @@
>   */
>
>  /* unbind kernel driver for this device */
> -static int
> +int
>  pci_unbind_kernel_driver(struct rte_pci_device *dev __rte_unused)
>  {
>         RTE_LOG(ERR, EAL, "RTE_PCI_DRV_FORCE_UNBIND flag is not
> implemented "
> @@ -357,71 +357,6 @@ error:
>         return -1;
>  }
>
> -/*
> - * If vendor/device ID match, call the devinit() function of the
> - * driver.
> - */
> -int
> -rte_eal_pci_probe_one_driver(struct rte_pci_driver *dr, struct
> rte_pci_device *dev)
> -{
> -       const struct rte_pci_id *id_table;
> -       int ret;
> -
> -       for (id_table = dr->id_table ; id_table->vendor_id != 0;
> id_table++) {
> -
> -               /* check if device's identifiers match the driver's ones */
> -               if (id_table->vendor_id != dev->id.vendor_id &&
> -                               id_table->vendor_id != PCI_ANY_ID)
> -                       continue;
> -               if (id_table->device_id != dev->id.device_id &&
> -                               id_table->device_id != PCI_ANY_ID)
> -                       continue;
> -               if (id_table->subsystem_vendor_id !=
> dev->id.subsystem_vendor_id &&
> -                               id_table->subsystem_vendor_id !=
> PCI_ANY_ID)
> -                       continue;
> -               if (id_table->subsystem_device_id !=
> dev->id.subsystem_device_id &&
> -                               id_table->subsystem_device_id !=
> PCI_ANY_ID)
> -                       continue;
> -
> -               struct rte_pci_addr *loc = &dev->addr;
> -
> -               RTE_LOG(DEBUG, EAL, "PCI device "PCI_PRI_FMT" on NUMA
> socket %i\n",
> -                               loc->domain, loc->bus, loc->devid,
> loc->function,
> -                               dev->numa_node);
> -
> -               RTE_LOG(DEBUG, EAL, "  probe driver: %x:%x %s\n",
> dev->id.vendor_id,
> -                               dev->id.device_id, dr->name);
> -
> -               /* no initialization when blacklisted, return without
> error */
> -               if (dev->devargs != NULL &&
> -                       dev->devargs->type == RTE_DEVTYPE_BLACKLISTED_PCI)
> {
> -
> -                       RTE_LOG(DEBUG, EAL, "  Device is blacklisted, not
> initializing\n");
> -                       return 0;
> -               }
> -
> -               if (dr->drv_flags & RTE_PCI_DRV_NEED_MAPPING) {
> -                       /* map resources for devices that use igb_uio */
> -                       ret = pci_uio_map_resource(dev);
> -                       if (ret != 0)
> -                               return ret;
> -               } else if (dr->drv_flags & RTE_PCI_DRV_FORCE_UNBIND &&
> -                          rte_eal_process_type() == RTE_PROC_PRIMARY) {
> -                       /* unbind current driver */
> -                       if (pci_unbind_kernel_driver(dev) < 0)
> -                               return -1;
> -               }
> -
> -               /* reference driver structure */
> -               dev->driver = dr;
> -
> -               /* call the driver devinit() function */
> -               return dr->devinit(dr, dev);
> -       }
> -       /* return positive value if driver is not found */
> -       return 1;
> -}
> -
>  /* Init the PCI EAL subsystem */
>  int
>  rte_eal_pci_init(void)
> diff --git a/lib/librte_eal/common/eal_common_pci.c
> b/lib/librte_eal/common/eal_common_pci.c
> index afd14ec..031c7a7 100644
> --- a/lib/librte_eal/common/eal_common_pci.c
> +++ b/lib/librte_eal/common/eal_common_pci.c
> @@ -139,7 +139,7 @@ pci_unmap_resource(void *requested_addr, size_t size)
>  }
>
>  /* Map pci device */
> -int
> +static int
>  pci_map_device(struct rte_pci_device *dev)
>  {
>         int ret = -1;
> @@ -170,7 +170,7 @@ pci_map_device(struct rte_pci_device *dev)
>
>  #ifdef RTE_LIBRTE_EAL_HOTPLUG
>  /* Unmap pci device */
> -void
> +static void
>  pci_unmap_device(struct rte_pci_device *dev)
>  {
>         if (dev == NULL)
> @@ -196,6 +196,135 @@ pci_unmap_device(struct rte_pci_device *dev)
>  #endif /* RTE_LIBRTE_EAL_HOTPLUG */
>
>  /*
> + * If vendor/device ID match, call the devinit() function of the
> + * driver.
> + */
> +static int
> +rte_eal_pci_probe_one_driver(struct rte_pci_driver *dr, struct
> rte_pci_device *dev)
> +{
> +       int ret;
> +       const struct rte_pci_id *id_table;
> +
> +       for (id_table = dr->id_table; id_table->vendor_id != 0;
> id_table++) {
> +
> +               /* check if device's identifiers match the driver's ones */
> +               if (id_table->vendor_id != dev->id.vendor_id &&
> +                               id_table->vendor_id != PCI_ANY_ID)
> +                       continue;
> +               if (id_table->device_id != dev->id.device_id &&
> +                               id_table->device_id != PCI_ANY_ID)
> +                       continue;
> +               if (id_table->subsystem_vendor_id !=
> dev->id.subsystem_vendor_id &&
> +                               id_table->subsystem_vendor_id !=
> PCI_ANY_ID)
> +                       continue;
> +               if (id_table->subsystem_device_id !=
> dev->id.subsystem_device_id &&
> +                               id_table->subsystem_device_id !=
> PCI_ANY_ID)
> +                       continue;
> +
> +               struct rte_pci_addr *loc = &dev->addr;
> +
> +               RTE_LOG(DEBUG, EAL, "PCI device "PCI_PRI_FMT" on NUMA
> socket %i\n",
> +                               loc->domain, loc->bus, loc->devid,
> loc->function,
> +                               dev->numa_node);
> +
> +               RTE_LOG(DEBUG, EAL, "  probe driver: %x:%x %s\n",
> dev->id.vendor_id,
> +                               dev->id.device_id, dr->name);
> +
> +               /* no initialization when blacklisted, return without
> error */
> +               if (dev->devargs != NULL &&
> +                       dev->devargs->type == RTE_DEVTYPE_BLACKLISTED_PCI)
> {
> +                       RTE_LOG(DEBUG, EAL, "  Device is blacklisted, not
> initializing\n");
> +                       return 1;
> +               }
> +
> +               if (dr->drv_flags & RTE_PCI_DRV_NEED_MAPPING) {
> +#ifdef RTE_PCI_CONFIG
> +                       /*
> +                        * Set PCIe config space for high performance.
> +                        * Return value can be ignored.
> +                        */
> +                       pci_config_space_set(dev);
> +#endif
> +                       /* map resources for devices that use igb_uio */
> +                       ret = pci_map_device(dev);
> +                       if (ret != 0)
> +                               return ret;
> +               } else if (dr->drv_flags & RTE_PCI_DRV_FORCE_UNBIND &&
> +                               rte_eal_process_type() ==
> RTE_PROC_PRIMARY) {
> +                       /* unbind current driver */
> +                       if (pci_unbind_kernel_driver(dev) < 0)
> +                               return -1;
> +               }
> +
> +               /* reference driver structure */
> +               dev->driver = dr;
> +
> +               /* call the driver devinit() function */
> +               return dr->devinit(dr, dev);
> +       }
> +       /* return positive value if driver is not found */
> +       return 1;
> +}
> +
> +#ifdef RTE_LIBRTE_EAL_HOTPLUG
> +/*
> + * If vendor/device ID match, call the devuninit() function of the
> + * driver.
> + */
> +static int
> +rte_eal_pci_close_one_driver(struct rte_pci_driver *dr,
> +               struct rte_pci_device *dev)
> +{
> +       const struct rte_pci_id *id_table;
> +
> +       if ((dr == NULL) || (dev == NULL))
> +               return -EINVAL;
> +
> +       for (id_table = dr->id_table; id_table->vendor_id != 0;
> id_table++) {
> +
> +               /* check if device's identifiers match the driver's ones */
> +               if (id_table->vendor_id != dev->id.vendor_id &&
> +                               id_table->vendor_id != PCI_ANY_ID)
> +                       continue;
> +               if (id_table->device_id != dev->id.device_id &&
> +                               id_table->device_id != PCI_ANY_ID)
> +                       continue;
> +               if (id_table->subsystem_vendor_id !=
> dev->id.subsystem_vendor_id &&
> +                               id_table->subsystem_vendor_id !=
> PCI_ANY_ID)
> +                       continue;
> +               if (id_table->subsystem_device_id !=
> dev->id.subsystem_device_id &&
> +                               id_table->subsystem_device_id !=
> PCI_ANY_ID)
> +                       continue;
> +
> +               struct rte_pci_addr *loc = &dev->addr;
> +
> +               RTE_LOG(DEBUG, EAL, "PCI device "PCI_PRI_FMT" on NUMA
> socket %i\n",
> +                               loc->domain, loc->bus, loc->devid,
> +                               loc->function, dev->numa_node);
> +
> +               RTE_LOG(DEBUG, EAL, "  remove driver: %x:%x %s\n",
> dev->id.vendor_id,
> +                               dev->id.device_id, dr->name);
> +
> +               /* call the driver devuninit() function */
> +               if (dr->devuninit && (dr->devuninit(dev) < 0))
> +                       return -1;      /* negative value is an error */
> +
> +               /* clear driver structure */
> +               dev->driver = NULL;
> +
> +               if (dr->drv_flags & RTE_PCI_DRV_NEED_MAPPING)
> +                       /* unmap resources for devices that use igb_uio */
> +                       pci_unmap_device(dev);
> +
> +               return 0;
> +       }
> +
> +       /* return positive value if driver is not found */
> +       return 1;
> +}
> +#endif /* RTE_LIBRTE_EAL_HOTPLUG */
> +
> +/*
>   * If vendor/device ID match, call the devinit() function of all
>   * registered driver for the given device. Return -1 if initialization
>   * failed, return 1 if no driver is found for this device.
> diff --git a/lib/librte_eal/common/eal_private.h
> b/lib/librte_eal/common/eal_private.h
> index 95b9e30..c3659e2 100644
> --- a/lib/librte_eal/common/eal_private.h
> +++ b/lib/librte_eal/common/eal_private.h
> @@ -156,23 +156,14 @@ struct rte_pci_driver;
>  struct rte_pci_device;
>
>  /**
> - * Map this device
> + * Unbind kernel driver for this device
>   *
>   * This function is private to EAL.
>   *
>   * @return
>   *   0 on success, negative on error
>   */
> -int pci_map_device(struct rte_pci_device *dev);
> -
> -#ifdef RTE_LIBRTE_EAL_HOTPLUG
> -/**
> - * Unmap this device
> - *
> - * This function is private to EAL.
> - */
> -void pci_unmap_device(struct rte_pci_device *dev);
> -#endif /* RTE_LIBRTE_EAL_HOTPLUG */
> +int pci_unbind_kernel_driver(struct rte_pci_device *dev);
>
>  /**
>   * Map the PCI resource of a PCI device in virtual memory
> @@ -194,32 +185,6 @@ void pci_uio_unmap_resource(struct rte_pci_device
> *dev);
>  #endif /* RTE_LIBRTE_EAL_HOTPLUG */
>
>  /**
> - * Mmap memory for single PCI device
> - *
> - * This function is private to EAL.
> - *
> - * @return
> - *   0 on success, negative on error
> - */
> -int rte_eal_pci_probe_one_driver(struct rte_pci_driver *dr,
> -               struct rte_pci_device *dev);
> -
> -/**
> - * Munmap memory for single PCI device
> - *
> - * This function is private to EAL.
> - *
> - * @param      dr
> - *  The pointer to the pci driver structure
> - * @param      dev
> - *  The pointer to the pci device structure
> - * @return
> - *   0 on success, negative on error
> - */
> -int rte_eal_pci_close_one_driver(struct rte_pci_driver *dr,
> -               struct rte_pci_device *dev);
> -
> -/**
>   * Allocate uio resource for PCI device
>   *
>   * This function is private to EAL.
> diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c
> b/lib/librte_eal/linuxapp/eal/eal_pci.c
> index 7e8df7d..ad6d1de 100644
> --- a/lib/librte_eal/linuxapp/eal/eal_pci.c
> +++ b/lib/librte_eal/linuxapp/eal/eal_pci.c
> @@ -2,6 +2,7 @@
>   *   BSD LICENSE
>   *
>   *   Copyright(c) 2010-2014 Intel Corporation. All rights reserved.
> + *   Copyright(c) 2015 IGEL Co., Ltd.
>   *   All rights reserved.
>   *
>   *   Redistribution and use in source and binary forms, with or without
> @@ -56,7 +57,7 @@
>   */
>
>  /* unbind kernel driver for this device */
> -static int
> +int
>  pci_unbind_kernel_driver(struct rte_pci_device *dev)
>  {
>         int n;
> @@ -522,146 +523,6 @@ pci_config_space_set(struct rte_pci_device *dev)
>  }
>  #endif
>
> -/*
> - * If vendor/device ID match, call the devinit() function of the
> - * driver.
> - */
> -int
> -rte_eal_pci_probe_one_driver(struct rte_pci_driver *dr, struct
> rte_pci_device *dev)
> -{
> -       int ret;
> -       const struct rte_pci_id *id_table;
> -
> -       for (id_table = dr->id_table; id_table->vendor_id != 0;
> id_table++) {
> -
> -               /* check if device's identifiers match the driver's ones */
> -               if (id_table->vendor_id != dev->id.vendor_id &&
> -                               id_table->vendor_id != PCI_ANY_ID)
> -                       continue;
> -               if (id_table->device_id != dev->id.device_id &&
> -                               id_table->device_id != PCI_ANY_ID)
> -                       continue;
> -               if (id_table->subsystem_vendor_id !=
> dev->id.subsystem_vendor_id &&
> -                               id_table->subsystem_vendor_id !=
> PCI_ANY_ID)
> -                       continue;
> -               if (id_table->subsystem_device_id !=
> dev->id.subsystem_device_id &&
> -                               id_table->subsystem_device_id !=
> PCI_ANY_ID)
> -                       continue;
> -
> -               struct rte_pci_addr *loc = &dev->addr;
> -
> -               RTE_LOG(DEBUG, EAL, "PCI device "PCI_PRI_FMT" on NUMA
> socket %i\n",
> -                               loc->domain, loc->bus, loc->devid,
> loc->function,
> -                               dev->numa_node);
> -
> -               RTE_LOG(DEBUG, EAL, "  probe driver: %x:%x %s\n",
> dev->id.vendor_id,
> -                               dev->id.device_id, dr->name);
> -
> -               /* no initialization when blacklisted, return without
> error */
> -               if (dev->devargs != NULL &&
> -                       dev->devargs->type == RTE_DEVTYPE_BLACKLISTED_PCI)
> {
> -                       RTE_LOG(DEBUG, EAL, "  Device is blacklisted, not
> initializing\n");
> -                       return 1;
> -               }
> -
> -               if (dr->drv_flags & RTE_PCI_DRV_NEED_MAPPING) {
> -#ifdef RTE_PCI_CONFIG
> -                       /*
> -                        * Set PCIe config space for high performance.
> -                        * Return value can be ignored.
> -                        */
> -                       pci_config_space_set(dev);
> -#endif
> -                       /* map resources for devices that use igb_uio */
> -                       ret = pci_map_device(dev);
> -                       if (ret != 0)
> -                               return ret;
> -               } else if (dr->drv_flags & RTE_PCI_DRV_FORCE_UNBIND &&
> -                          rte_eal_process_type() == RTE_PROC_PRIMARY) {
> -                       /* unbind current driver */
> -                       if (pci_unbind_kernel_driver(dev) < 0)
> -                               return -1;
> -               }
> -
> -               /* reference driver structure */
> -               dev->driver = dr;
> -
> -               /* call the driver devinit() function */
> -               return dr->devinit(dr, dev);
> -       }
> -       /* return positive value if driver is not found */
> -       return 1;
> -}
> -
> -#ifdef RTE_LIBRTE_EAL_HOTPLUG
> -/*
> - * If vendor/device ID match, call the devuninit() function of the
> - * driver.
> - */
> -int
> -rte_eal_pci_close_one_driver(struct rte_pci_driver *dr,
> -               struct rte_pci_device *dev)
> -{
> -       const struct rte_pci_id *id_table;
> -
> -       if ((dr == NULL) || (dev == NULL))
> -               return -EINVAL;
> -
> -       for (id_table = dr->id_table; id_table->vendor_id != 0;
> id_table++) {
> -
> -               /* check if device's identifiers match the driver's ones */
> -               if (id_table->vendor_id != dev->id.vendor_id &&
> -                   id_table->vendor_id != PCI_ANY_ID)
> -                       continue;
> -               if (id_table->device_id != dev->id.device_id &&
> -                   id_table->device_id != PCI_ANY_ID)
> -                       continue;
> -               if (id_table->subsystem_vendor_id !=
> -                   dev->id.subsystem_vendor_id &&
> -                   id_table->subsystem_vendor_id != PCI_ANY_ID)
> -                       continue;
> -               if (id_table->subsystem_device_id !=
> -                   dev->id.subsystem_device_id &&
> -                   id_table->subsystem_device_id != PCI_ANY_ID)
> -                       continue;
> -
> -               struct rte_pci_addr *loc = &dev->addr;
> -
> -               RTE_LOG(DEBUG, EAL,
> -                               "PCI device "PCI_PRI_FMT" on NUMA socket
> %i\n",
> -                               loc->domain, loc->bus, loc->devid,
> -                               loc->function, dev->numa_node);
> -
> -               RTE_LOG(DEBUG, EAL, "  remove driver: %x:%x %s\n",
> -                               dev->id.vendor_id, dev->id.device_id,
> -                               dr->name);
> -
> -               /* call the driver devuninit() function */
> -               if (dr->devuninit && (dr->devuninit(dev) < 0))
> -                       return -1;      /* negative value is an error */
> -
> -               /* clear driver structure */
> -               dev->driver = NULL;
> -
> -               if (dr->drv_flags & RTE_PCI_DRV_NEED_MAPPING)
> -                       /* unmap resources for devices that use igb_uio */
> -                       pci_unmap_device(dev);
> -
> -               return 0;
> -       }
> -       /* return positive value if driver is not found */
> -       return 1;
> -}
> -#else /* RTE_LIBRTE_EAL_HOTPLUG */
> -int
> -rte_eal_pci_close_one_driver(struct rte_pci_driver *dr __rte_unused,
> -               struct rte_pci_device *dev __rte_unused)
> -{
> -       RTE_LOG(ERR, EAL, "Hotplug support isn't enabled\n");
> -       return -1;
> -}
> -#endif /* RTE_LIBRTE_EAL_HOTPLUG */
> -
>  /* Init the PCI EAL subsystem */
>  int
>  rte_eal_pci_init(void)
> --
> 2.1.4
>
>

Acked-by: David Marchand <david.marchand@6wind.com>

-- 
David Marchand

  reply	other threads:[~2015-07-07  8:07 UTC|newest]

Thread overview: 120+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2015-05-19  5:54 [PATCH v4 0/5] Clean up pci uio implementations Tetsuya Mukawa
2015-05-19  5:54 ` [PATCH v4 1/5] eal: Fix coding style of eal_pci.c and eal_pci_uio.c Tetsuya Mukawa
2015-05-19 14:51   ` Stephen Hemminger
2015-06-25  3:19   ` [PATCH v5 0/5] Clean up pci uio implementations Tetsuya Mukawa
2015-06-25  3:19     ` [PATCH v5 1/5] eal: Fix coding style of eal_pci.c and eal_pci_uio.c Tetsuya Mukawa
2015-06-25  9:16       ` David Marchand
2015-06-25  3:19     ` [PATCH v5 2/5] eal: Close file descriptor of uio configuration Tetsuya Mukawa
2015-06-25  3:19     ` [PATCH v5 3/5] eal: Fix memory leaks and needless increment of pci_map_addr Tetsuya Mukawa
2015-06-25  9:16       ` David Marchand
2015-06-26  1:30         ` Tetsuya Mukawa
2015-06-25  9:18       ` David Marchand
2015-06-26  1:35         ` Tetsuya Mukawa
2015-06-26  8:18       ` [PATCH v6 0/5] Clean up pci uio implementations Tetsuya Mukawa
2015-06-26  8:18         ` [PATCH v6 1/5] eal: Fix coding style of eal_pci.c and eal_pci_uio.c Tetsuya Mukawa
2015-06-26 14:30           ` Iremonger, Bernard
2015-06-26  8:18         ` [PATCH v6 2/5] eal: Close file descriptor of uio configuration Tetsuya Mukawa
2015-06-26 14:32           ` Iremonger, Bernard
2015-06-26  8:18         ` [PATCH v6 3/5] eal: Fix memory leaks and needless increment of pci_map_addr Tetsuya Mukawa
2015-06-26 14:34           ` Iremonger, Bernard
2015-06-30  8:24           ` [PATCH v7 00/12] Clean up pci uio implementations Tetsuya Mukawa
2015-06-30  8:24             ` [PATCH v7 01/12] eal: Fix coding style of eal_pci.c and eal_pci_uio.c Tetsuya Mukawa
2015-06-30  8:24             ` [PATCH v7 02/12] eal: Close file descriptor of uio configuration Tetsuya Mukawa
2015-06-30  8:24             ` [PATCH v7 03/12] eal: Fix memory leaks and needless increment of pci_map_addr Tetsuya Mukawa
2015-06-30 12:33               ` Iremonger, Bernard
2015-07-02  9:57               ` Bruce Richardson
2015-07-03  8:51                 ` Tetsuya Mukawa
2015-06-30  8:24             ` [PATCH v7 04/12] eal/bsdapp: Change names of pci related data structure Tetsuya Mukawa
2015-06-30 12:36               ` Iremonger, Bernard
2015-06-30  8:24             ` [PATCH v7 05/12] eal: Fix uio mapping differences between linuxapp and bsdapp Tetsuya Mukawa
2015-06-30 12:51               ` Iremonger, Bernard
2015-07-02 10:20               ` Bruce Richardson
2015-07-03  8:51                 ` Tetsuya Mukawa
2015-06-30  8:24             ` [PATCH v7 06/12] eal: Add pci_uio_alloc_resource() Tetsuya Mukawa
2015-07-02 10:46               ` Bruce Richardson
2015-07-03  8:52                 ` Tetsuya Mukawa
2015-07-03  9:45                   ` Bruce Richardson
2015-06-30  8:24             ` [PATCH v7 07/12] eal: Add pci_uio_map_resource_by_index() Tetsuya Mukawa
2015-06-30  8:24             ` [PATCH v7 08/12] eal: Consolidate pci_map and mapped_pci_resource of linuxapp and bsdapp Tetsuya Mukawa
2015-06-30 14:25               ` Iremonger, Bernard
2015-06-30  8:24             ` [PATCH v7 09/12] eal: Consolidate pci_map/unmap_resource() " Tetsuya Mukawa
2015-06-30 14:28               ` Iremonger, Bernard
2015-07-02 11:11               ` Bruce Richardson
2015-07-03  8:52                 ` Tetsuya Mukawa
2015-06-30  8:24             ` [PATCH v7 10/12] eal: Consolidate pci uio functions " Tetsuya Mukawa
2015-06-30  8:24             ` [PATCH v7 11/12] eal: Consolidate pci_map/unmap_device() " Tetsuya Mukawa
2015-06-30 14:45               ` Iremonger, Bernard
2015-07-06  6:24               ` [PATCH v8 00/12] Clean up pci uio implementations Tetsuya Mukawa
2015-07-06  6:24                 ` [PATCH v8 01/12] eal: Fix coding style of eal_pci.c and eal_pci_uio.c Tetsuya Mukawa
2015-07-07  8:04                   ` David Marchand
2015-07-08  2:42                     ` Tetsuya Mukawa
2015-07-06  6:24                 ` [PATCH v8 02/12] eal: Close file descriptor of uio configuration Tetsuya Mukawa
2015-07-07  8:04                   ` David Marchand
2015-07-06  6:24                 ` [PATCH v8 03/12] eal: Fix memory leaks and needless increment of pci_map_addr Tetsuya Mukawa
2015-07-07  8:04                   ` David Marchand
2015-07-08  2:42                     ` Tetsuya Mukawa
2015-07-06  6:24                 ` [PATCH v8 04/12] eal/bsdapp: Change names of pci related data structure Tetsuya Mukawa
2015-07-07  8:04                   ` David Marchand
2015-07-06  6:24                 ` [PATCH v8 05/12] eal: Fix uio mapping differences between linuxapp and bsdapp Tetsuya Mukawa
2015-07-07  8:04                   ` David Marchand
2015-07-08  2:42                     ` Tetsuya Mukawa
2015-07-06  6:24                 ` [PATCH v8 06/12] eal: Add pci_uio_alloc_resource() Tetsuya Mukawa
2015-07-07  8:04                   ` David Marchand
2015-07-08  2:42                     ` Tetsuya Mukawa
2015-07-06  6:24                 ` [PATCH v8 07/12] eal: Add pci_uio_map_resource_by_index() Tetsuya Mukawa
2015-07-07  8:05                   ` David Marchand
2015-07-08  2:42                     ` Tetsuya Mukawa
2015-07-06  6:24                 ` [PATCH v8 08/12] eal: Consolidate pci_map and mapped_pci_resource of linuxapp and bsdapp Tetsuya Mukawa
2015-07-07  8:05                   ` David Marchand
2015-07-06  6:24                 ` [PATCH v8 09/12] eal: Consolidate pci_map/unmap_resource() " Tetsuya Mukawa
2015-07-07  8:05                   ` David Marchand
2015-07-06  6:24                 ` [PATCH v8 10/12] eal: Consolidate pci uio functions " Tetsuya Mukawa
2015-07-07  8:07                   ` David Marchand
2015-07-06  6:24                 ` [PATCH v8 11/12] eal: Consolidate pci_map/unmap_device() " Tetsuya Mukawa
2015-07-07  8:06                   ` David Marchand
2015-07-08  2:42                     ` Tetsuya Mukawa
2015-07-08  8:27                       ` Thomas Monjalon
2015-07-08  8:50                         ` Tetsuya Mukawa
2015-07-06  6:24                 ` [PATCH v8 12/12] eal: Consolidate rte_eal_pci_probe/close_one_driver() " Tetsuya Mukawa
2015-07-07  8:07                   ` David Marchand [this message]
2015-07-08 10:34               ` [PATCH v9 00/12] Clean up pci uio implementations Tetsuya Mukawa
2015-07-08 10:34                 ` [PATCH v9 01/12] eal: Fix coding style of eal_pci.c and eal_pci_uio.c Tetsuya Mukawa
2015-07-08 16:09                   ` Stephen Hemminger
2015-07-08 20:30                     ` Thomas Monjalon
2015-07-09  1:09                       ` Tetsuya Mukawa
2015-07-08 10:34                 ` [PATCH v9 02/12] eal: Close file descriptor of uio configuration Tetsuya Mukawa
2015-07-08 10:34                 ` [PATCH v9 03/12] eal: Fix memory leaks and needless increment of pci_map_addr Tetsuya Mukawa
2015-07-08 10:34                 ` [PATCH v9 04/12] eal/bsdapp: Change names of pci related data structure Tetsuya Mukawa
2015-07-08 10:34                 ` [PATCH v9 05/12] eal: Fix uio mapping differences between linuxapp and bsdapp Tetsuya Mukawa
2015-07-08 10:34                 ` [PATCH v9 06/12] eal: Add pci_uio_alloc/free_resource() Tetsuya Mukawa
2015-07-08 10:34                 ` [PATCH v9 07/12] eal: Add pci_uio_map_resource_by_index() Tetsuya Mukawa
2015-07-08 10:34                 ` [PATCH v9 08/12] eal: Consolidate pci_map and mapped_pci_resource of linuxapp and bsdapp Tetsuya Mukawa
2015-07-08 10:34                 ` [PATCH v9 09/12] eal: Consolidate pci_map/unmap_resource() " Tetsuya Mukawa
2015-07-08 10:34                 ` [PATCH v9 10/12] eal: Consolidate pci uio functions " Tetsuya Mukawa
2015-07-08 10:34                 ` [PATCH v9 11/12] eal: Consolidate pci_map/unmap_device() " Tetsuya Mukawa
2015-07-08 10:34                 ` [PATCH v9 12/12] eal: Consolidate rte_eal_pci_probe/close_one_driver() " Tetsuya Mukawa
2015-07-08 12:36                 ` [PATCH v9 00/12] Clean up pci uio implementations David Marchand
2015-07-08 21:52                   ` Thomas Monjalon
2015-06-30  8:24             ` [PATCH v7 12/12] eal: Consolidate rte_eal_pci_probe/close_one_driver() of linuxapp and bsdapp Tetsuya Mukawa
2015-06-30 14:56               ` Iremonger, Bernard
2015-07-01  6:39                 ` Tetsuya Mukawa
2015-07-02 11:32             ` [PATCH v7 00/12] Clean up pci uio implementations Bruce Richardson
2015-07-03  8:52               ` Tetsuya Mukawa
2015-06-26  8:18         ` [PATCH v6 4/5] eal/bsdapp: Change names of pci related data structure Tetsuya Mukawa
2015-06-26 14:36           ` Iremonger, Bernard
2015-06-26  8:18         ` [PATCH v6 5/5] eal: Fix uio mapping differences between linuxapp and bsdapp Tetsuya Mukawa
2015-06-26 14:42           ` Iremonger, Bernard
2015-06-25  3:19     ` [PATCH v5 4/5] eal/bsdapp: Change names of pci related data structure Tetsuya Mukawa
2015-06-25  9:19       ` David Marchand
2015-06-25  3:19     ` [PATCH v5 5/5] eal: Fix uio mapping differences between linuxapp and bsdapp Tetsuya Mukawa
2015-05-19  5:54 ` [PATCH v4 2/5] eal: Close file descriptor of uio configuration Tetsuya Mukawa
2015-05-19 16:02   ` Stephen Hemminger
2015-05-19  5:54 ` [PATCH v4 3/5] eal: Fix memory leaks and needless increment of pci_map_addr Tetsuya Mukawa
2015-06-15 14:29   ` Iremonger, Bernard
2015-06-15 15:05     ` Iremonger, Bernard
2015-05-19  5:54 ` [PATCH v4 4/5] eal/bsdapp: Change names of pci related data structure Tetsuya Mukawa
2015-05-19  5:54 ` [PATCH v4 5/5] eal: Fix uio mapping differences between linuxapp and bsdapp Tetsuya Mukawa
2015-06-15 14:31   ` Iremonger, Bernard
2015-06-15 15:08     ` Iremonger, Bernard
2015-06-15 15:17       ` Thomas Monjalon
2015-05-19  5:57 ` [PATCH v4 0/5] Clean up pci uio implementations Tetsuya Mukawa

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=CALwxeUuRAD92dkRLhRajDQB19wv32-XNNs-mwr1v0hkv2wtD3g@mail.gmail.com \
    --to=david.marchand@6wind.com \
    --cc=dev@dpdk.org \
    --cc=mukawa@igel.co.jp \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.