Two of these loops easily collapse into a single loop.
This sets the stage for future simplifications.

Signed-off-by: Ben Walker <benjamin.wal...@intel.com>
Change-Id: I3353f2e3585808cebff3f11805f96e4a1cc7fb3a
---
 drivers/bus/pci/linux/pci.c | 31 ++++++++++---------------------
 1 file changed, 10 insertions(+), 21 deletions(-)

diff --git a/drivers/bus/pci/linux/pci.c b/drivers/bus/pci/linux/pci.c
index 70815e4f0..b7a66d717 100644
--- a/drivers/bus/pci/linux/pci.c
+++ b/drivers/bus/pci/linux/pci.c
@@ -571,7 +571,6 @@ rte_pci_get_iommu_class(void)
        bool has_iova_va = false;
        bool is_bound_uio = false;
        bool iommu_no_va = false;
-       bool break_out;
        bool need_check;
        struct rte_pci_device *dev = NULL;
        struct rte_pci_driver *drv = NULL;
@@ -592,8 +591,16 @@ rte_pci_get_iommu_class(void)
        FOREACH_DEVICE_ON_PCIBUS(dev) {
                if (dev->kdrv == RTE_KDRV_VFIO) {
                        FOREACH_DRIVER_ON_PCIBUS(drv) {
-                               if (drv->drv_flags & RTE_PCI_DRV_IOVA_AS_VA &&
-                                   rte_pci_match(drv, dev)) {
+                               if (!rte_pci_match(drv, dev))
+                                       continue;
+
+                               /*
+                               * just one PCI device needs to be checked out 
because
+                               * the IOMMU hardware is the same for all of 
them.
+                               */
+                               iommu_no_va = 
!pci_one_device_iommu_support_va(dev);
+
+                               if (drv->drv_flags & RTE_PCI_DRV_IOVA_AS_VA) {
                                        has_iova_va = true;
                                        break;
                                }
@@ -630,24 +637,6 @@ rte_pci_get_iommu_class(void)
                }
        }
 
-       break_out = false;
-       FOREACH_DEVICE_ON_PCIBUS(dev) {
-               FOREACH_DRIVER_ON_PCIBUS(drv) {
-                       if (!rte_pci_match(drv, dev))
-                               continue;
-                       /*
-                        * just one PCI device needs to be checked out because
-                        * the IOMMU hardware is the same for all of them.
-                        */
-                       iommu_no_va = !pci_one_device_iommu_support_va(dev);
-                       break_out = true;
-                       break;
-               }
-
-               if (break_out)
-                       break;
-       }
-
 #ifdef VFIO_PRESENT
        is_vfio_noiommu_enabled = rte_vfio_noiommu_is_enabled() == true ?
                                        true : false;
-- 
2.20.1

Reply via email to