vlib: avoid pci scan without registrations

Type: improvement
Signed-off-by: Vladimir Zhigulin <scripath96@gmail.com>
Change-Id: Id1d78a36cec10a01fbf266b016ba364519e5cb66
diff --git a/src/vlib/linux/pci.c b/src/vlib/linux/pci.c
index f7c63bc..29ca3d9 100644
--- a/src/vlib/linux/pci.c
+++ b/src/vlib/linux/pci.c
@@ -1561,14 +1561,17 @@
 
   ASSERT (sizeof (vlib_pci_addr_t) == sizeof (u32));
 
-  addrs = vlib_pci_get_all_dev_addrs ();
-  vec_foreach (addr, addrs)
+  if (pm->pci_device_registrations)
     {
-      vlib_pci_device_info_t *d;
-      if ((d = vlib_pci_get_device_info (vm, addr, 0)))
+      addrs = vlib_pci_get_all_dev_addrs ();
+      vec_foreach (addr, addrs)
 	{
-	  init_device_from_registered (vm, d);
-	  vlib_pci_free_device_info (d);
+	  vlib_pci_device_info_t *d;
+	  if ((d = vlib_pci_get_device_info (vm, addr, 0)))
+	    {
+	      init_device_from_registered (vm, d);
+	      vlib_pci_free_device_info (d);
+	    }
 	}
     }