vlib: avoid pci scan without registrations 52/40752/2
authorVladimir Zhigulin <scripath96@gmail.com>
Fri, 19 Apr 2024 10:08:02 +0000 (12:08 +0200)
committerDamjan Marion <dmarion@0xa5.net>
Mon, 13 May 2024 15:03:18 +0000 (15:03 +0000)
Type: improvement
Signed-off-by: Vladimir Zhigulin <scripath96@gmail.com>
Change-Id: Id1d78a36cec10a01fbf266b016ba364519e5cb66

src/vlib/linux/pci.c

index f7c63bc..29ca3d9 100644 (file)
@@ -1561,14 +1561,17 @@ linux_pci_init (vlib_main_t * vm)
 
   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);
+           }
        }
     }