pci: align ioport unmap error handling to ioport map
[dpdk.git] / lib / librte_eal / linuxapp / eal / eal_pci.c
index d2e8a09..77d70d9 100644 (file)
@@ -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,12 +607,11 @@ 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;
@@ -621,14 +620,13 @@ rte_eal_pci_ioport_map(struct rte_pci_device *dev, int bar,
        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)
@@ -686,12 +684,11 @@ rte_eal_pci_ioport_write(struct rte_pci_ioport *p,
 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;
@@ -704,8 +701,6 @@ rte_eal_pci_ioport_unmap(struct rte_pci_ioport *p)
 #if defined(RTE_ARCH_X86)
                /* special case for x86 ... nothing to do */
                ret = 0;
-#else
-               ret = -1;
 #endif
                break;
        }