[dpdk-dev] [PATCH] pci:don't insert an unbound device to pci_device_list in pci_scan_one

Rugang Chen rugangchen2011 at gmail.com
Sat Jun 25 18:53:10 CEST 2016


Hi all,

Can you take a look at the patch and send out your comments?

It's first time for me to work with git as this way, not sure if I'm doing
right on the process.

There're two emails for this patch. The second one is to correct the first
one.

On Saturday, June 25, 2016, Rugang Chen <rugangchen2011 at gmail.com> wrote:

> If a device isn't bound by any uio driver (vfio-pci, igb_uio,
> uio_pci_generic)
> and is expected to owned by a kernel space driver, here it's still
> inserted to
> pci_device_list.
>
> This may cause application based on dpdk fetch the device by accident and
> then
> the device is hanlded by dpdk.
>
> For safe, skip it from pci_device_list as if it's unbound, dpdk won't want
> to
> use it.
> ---
>  lib/librte_eal/linuxapp/eal/eal_pci.c | 6 +++++-
>  1 file changed, 5 insertions(+), 1 deletion(-)
>
> diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c
> b/lib/librte_eal/linuxapp/eal/eal_pci.c
> index f63febc..432d2e8 100644
> --- a/lib/librte_eal/linuxapp/eal/eal_pci.c
> +++ b/lib/librte_eal/linuxapp/eal/eal_pci.c
> @@ -392,8 +392,12 @@ pci_scan_one(const char *dirname, uint16_t domain,
> uint8_t bus,
>          * fetch it from pci_device_list by accident and then dpdk handles
> it. Kernel
>          * space driver maybe wants to own it.
>          */
> -       if (dev->kdrv == RTE_KDRV_NONE)
> +       if (dev->kdrv == RTE_KDRV_NONE) {
> +               RTE_LOG(WARNING, EAL, "Skip ubound device\n");
> +               free(dev);
>                 return 0;
> +       }
> +
>         /* device is valid, add in list (sorted) */
>         if (TAILQ_EMPTY(&pci_device_list)) {
>                 TAILQ_INSERT_TAIL(&pci_device_list, dev, next);
> --
> 2.1.4
>
>


More information about the dev mailing list