The PCI memory resources in the secondary process should be in
the exact same location as the primary process. Otherwise
there is a risk of a stray pointer.

Not sure if this is right, but it looks like a potential
problem.

---
 lib/librte_eal/common/eal_common_pci_uio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/lib/librte_eal/common/eal_common_pci_uio.c 
b/lib/librte_eal/common/eal_common_pci_uio.c
index 367a6816dcb8..2156b1a436c4 100644
--- a/lib/librte_eal/common/eal_common_pci_uio.c
+++ b/lib/librte_eal/common/eal_common_pci_uio.c
@@ -77,7 +77,7 @@ pci_uio_map_secondary(struct rte_pci_device *dev)
 
                        void *mapaddr = pci_map_resource(uio_res->maps[i].addr,
                                        fd, (off_t)uio_res->maps[i].offset,
-                                       (size_t)uio_res->maps[i].size, 0);
+                                       (size_t)uio_res->maps[i].size, 
MAP_FIXED);
                        /* fd is not needed in slave process, close it */
                        close(fd);
                        if (mapaddr != uio_res->maps[i].addr) {
-- 
2.11.0

Reply via email to