X-Git-Url: http://git.droids-corp.org/?a=blobdiff_plain;f=lib%2Flibrte_eal%2Flinuxapp%2Feal%2Feal_pci.c;h=74c691928976fbeb0de2c196bd10349a79bf943f;hb=aa664f45cc744d28778656136d0883ccd15839d6;hp=d2e8a09e4ab2959d14771b3675c17cbdac0f23fd;hpb=b00eca4e5cbd353368a5387e300345872c84486f;p=dpdk.git diff --git a/lib/librte_eal/linuxapp/eal/eal_pci.c b/lib/librte_eal/linuxapp/eal/eal_pci.c index d2e8a09e4a..74c6919289 100644 --- a/lib/librte_eal/linuxapp/eal/eal_pci.c +++ b/lib/librte_eal/linuxapp/eal/eal_pci.c @@ -362,7 +362,7 @@ pci_scan_one(const char *dirname, uint16_t domain, uint8_t bus, else dev->kdrv = RTE_KDRV_UNKNOWN; } else - dev->kdrv = RTE_KDRV_UNKNOWN; + dev->kdrv = RTE_KDRV_NONE; /* device is valid, add in list (sorted) */ if (TAILQ_EMPTY(&pci_device_list)) { @@ -607,28 +607,28 @@ int rte_eal_pci_ioport_map(struct rte_pci_device *dev, int bar, struct rte_pci_ioport *p) { - int ret; + int ret = -1; switch (dev->kdrv) { #ifdef VFIO_PRESENT case RTE_KDRV_VFIO: - ret = -1; if (pci_vfio_is_enabled()) ret = pci_vfio_ioport_map(dev, bar, p); break; #endif case RTE_KDRV_IGB_UIO: + ret = pci_uio_ioport_map(dev, bar, p); + break; case RTE_KDRV_UIO_GENERIC: ret = pci_uio_ioport_map(dev, bar, p); break; - default: + case RTE_KDRV_NONE: #if defined(RTE_ARCH_X86) - /* special case for x86 ... */ ret = pci_ioport_map(dev, bar, p); -#else - ret = -1; #endif break; + default: + break; } if (!ret) @@ -648,15 +648,18 @@ rte_eal_pci_ioport_read(struct rte_pci_ioport *p, break; #endif case RTE_KDRV_IGB_UIO: + pci_uio_ioport_read(p, data, len, offset); + break; case RTE_KDRV_UIO_GENERIC: pci_uio_ioport_read(p, data, len, offset); break; - default: + case RTE_KDRV_NONE: #if defined(RTE_ARCH_X86) - /* special case for x86 ... */ pci_uio_ioport_read(p, data, len, offset); #endif break; + default: + break; } } @@ -671,43 +674,46 @@ rte_eal_pci_ioport_write(struct rte_pci_ioport *p, break; #endif case RTE_KDRV_IGB_UIO: + pci_uio_ioport_write(p, data, len, offset); + break; case RTE_KDRV_UIO_GENERIC: pci_uio_ioport_write(p, data, len, offset); break; - default: + case RTE_KDRV_NONE: #if defined(RTE_ARCH_X86) - /* special case for x86 ... */ pci_uio_ioport_write(p, data, len, offset); #endif break; + default: + break; } } int rte_eal_pci_ioport_unmap(struct rte_pci_ioport *p) { - int ret; + int ret = -1; switch (p->dev->kdrv) { #ifdef VFIO_PRESENT case RTE_KDRV_VFIO: - ret = -1; if (pci_vfio_is_enabled()) ret = pci_vfio_ioport_unmap(p); break; #endif case RTE_KDRV_IGB_UIO: + ret = pci_uio_ioport_unmap(p); + break; case RTE_KDRV_UIO_GENERIC: ret = pci_uio_ioport_unmap(p); break; - default: + case RTE_KDRV_NONE: #if defined(RTE_ARCH_X86) - /* special case for x86 ... nothing to do */ ret = 0; -#else - ret = -1; #endif break; + default: + break; } return ret;