pci: keep API compatibility with mmap values
[dpdk.git] / drivers / bus / pci / linux / pci_uio.c
index f240fe4..097dc19 100644 (file)
@@ -20,7 +20,6 @@
 #include <rte_log.h>
 #include <rte_pci.h>
 #include <rte_bus_pci.h>
-#include <rte_eal_memconfig.h>
 #include <rte_common.h>
 #include <rte_malloc.h>
 
@@ -352,6 +351,8 @@ pci_uio_map_resource_by_index(struct rte_pci_device *dev, int res_idx,
        pci_map_addr = RTE_PTR_ADD(mapaddr,
                        (size_t)dev->mem_resource[res_idx].len);
 
+       pci_map_addr = RTE_PTR_ALIGN(pci_map_addr, sysconf(_SC_PAGE_SIZE));
+
        maps[map_idx].phaddr = dev->mem_resource[res_idx].phys_addr;
        maps[map_idx].size = dev->mem_resource[res_idx].len;
        maps[map_idx].addr = mapaddr;
@@ -376,6 +377,12 @@ pci_uio_ioport_map(struct rte_pci_device *dev, int bar,
        int uio_num;
        unsigned long start;
 
+       if (rte_eal_iopl_init() != 0) {
+               RTE_LOG(ERR, EAL, "%s(): insufficient ioport permissions for PCI device %s\n",
+                       __func__, dev->name);
+               return -1;
+       }
+
        uio_num = pci_get_uio_dev(dev, dirname, sizeof(dirname), 0);
        if (uio_num < 0)
                return -1;