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 > >