vlib: pci cleanup and improvements
[vpp.git] / src / plugins / perfmon / intel / bundle / iio_bw.c
index 9aaca42..f746ca2 100644 (file)
@@ -126,9 +126,16 @@ format_stack_socket (u8 *s, va_list *va)
     }
 
   uword *pu = hash_get (h, root_bus.bus);
-  e = pool_elt_at_index (p, (index_t) pu[0]);
+  if (pu)
+    {
+      e = pool_elt_at_index (p, (index_t) pu[0]);
 
-  s = format (s, "IIO%u/%u", e->socket_id, e->iio_unit_id);
+      s = format (s, "IIO%u/%u", e->socket_id, e->iio_unit_id);
+    }
+  else
+    {
+      s = format (s, "[ERR: hash lookup for bus '%u' failed]", root_bus.bus);
+    }
   return s;
 }
 
@@ -160,8 +167,8 @@ init_intel_uncore_iio_bw (vlib_main_t *vm, struct perfmon_bundle *b)
 
       s = format (
        s, "%-10U%-5U%-13U%04x:%04x   %-14U%-16s%v\n", format_stack_socket, p,
-       h, addr, format_vlib_pci_link_port, d, format_vlib_pci_addr, addr,
-       d->vendor_id, d->device_id, format_vlib_pci_link_speed, d,
+       h, addr, format_vlib_pci_link_port, &d->config, format_vlib_pci_addr,
+       addr, d->vendor_id, d->device_id, format_vlib_pci_link_speed, d,
        d->driver_name ? (char *) d->driver_name : "", d->product_name);
 
       vlib_pci_free_device_info (d);