This patch adds IO port region check to skip region map
when doing IO port map for legacy device in sencondary process.

Fixes: 33604c31354a ("vfio: refactor PCI BAR mapping")
Cc: sta...@dpdk.org

Signed-off-by: Miao Li <miao...@intel.com>
---
 drivers/bus/pci/linux/pci_vfio.c | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/drivers/bus/pci/linux/pci_vfio.c b/drivers/bus/pci/linux/pci_vfio.c
index e634de8322..dd4ca46120 100644
--- a/drivers/bus/pci/linux/pci_vfio.c
+++ b/drivers/bus/pci/linux/pci_vfio.c
@@ -1099,6 +1099,15 @@ pci_vfio_map_resource_secondary(struct rte_pci_device 
*dev)
        maps = vfio_res->maps;
 
        for (i = 0; i < vfio_res->nb_maps; i++) {
+               /* chk for io port region */
+               ret = pci_vfio_is_ioport_bar(dev, vfio_dev_fd, i);
+               if (ret < 0) {
+                       goto err_vfio_dev_fd;
+               } else if (ret) {
+                       RTE_LOG(INFO, EAL, "Ignore mapping IO port bar(%d)\n", 
i);
+                       continue;
+               }
+
                if (maps[i].nr_areas > 0) {
                        ret = pci_vfio_sparse_mmap_bar(vfio_dev_fd, vfio_res, 
i, MAP_FIXED);
                        if (ret < 0) {
-- 
2.25.1

Reply via email to