pci: fix ioport support for uio_pci_generic on x86
authorDavid Marchand <david.marchand@6wind.com>
Tue, 15 Mar 2016 06:29:13 +0000 (07:29 +0100)
committerThomas Monjalon <thomas.monjalon@6wind.com>
Wed, 16 Mar 2016 20:20:37 +0000 (21:20 +0100)
uio_pci_generic does not offer the same sysfs helpers as igb_uio.
In this case, ioport number can only be retrieved by parsing /proc/ioports.

Fixes: 756ce64b1ecd ("eal: introduce PCI ioport API")

Reported-by: Mauricio Vasquez B <mauricio.vasquezbernal@studenti.polito.it>
Signed-off-by: David Marchand <david.marchand@6wind.com>
lib/librte_eal/linuxapp/eal/eal_pci.c

index 74c6919..dbf12a8 100644 (file)
@@ -620,7 +620,11 @@ rte_eal_pci_ioport_map(struct rte_pci_device *dev, int bar,
                ret = pci_uio_ioport_map(dev, bar, p);
                break;
        case RTE_KDRV_UIO_GENERIC:
+#if defined(RTE_ARCH_X86)
+               ret = pci_ioport_map(dev, bar, p);
+#else
                ret = pci_uio_ioport_map(dev, bar, p);
+#endif
                break;
        case RTE_KDRV_NONE:
 #if defined(RTE_ARCH_X86)
@@ -705,7 +709,11 @@ rte_eal_pci_ioport_unmap(struct rte_pci_ioport *p)
                ret = pci_uio_ioport_unmap(p);
                break;
        case RTE_KDRV_UIO_GENERIC:
+#if defined(RTE_ARCH_X86)
+               ret = 0;
+#else
                ret = pci_uio_ioport_unmap(p);
+#endif
                break;
        case RTE_KDRV_NONE:
 #if defined(RTE_ARCH_X86)