From: Alvin Zhang <alvinx.zh...@intel.com>

When mapping PCI bar resources around the MSI-X table, if the size
of the first part is 0, the second part should also be mapped if
its size is not 0.
Fixes: e200535c1ca3 ("mem: drop mapping API workaround")
Cc: sta...@dpdk.org

Signed-off-by: Alvin Zhang <alvinx.zh...@intel.com>
---
 drivers/bus/pci/linux/pci_vfio.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/bus/pci/linux/pci_vfio.c b/drivers/bus/pci/linux/pci_vfio.c
index 34b5da8..37bfda8 100644
--- a/drivers/bus/pci/linux/pci_vfio.c
+++ b/drivers/bus/pci/linux/pci_vfio.c
@@ -565,7 +565,7 @@
                }
 
                /* if there's a second part, try to map it */
-               if (map_addr != NULL
+               if ((map_addr != NULL || memreg[0].size == 0)
                        && memreg[1].offset && memreg[1].size) {
                        void *second_addr = RTE_PTR_ADD(bar_addr,
                                                (uintptr_t)(memreg[1].offset -
-- 
1.8.3.1

Reply via email to