diff --git a/hw/pci-bridge/pci_expander_bridge.c b/hw/pci-bridge/pci_expander_bridge.c index 11623a5666..40ffbc4e08 100644 --- a/hw/pci-bridge/pci_expander_bridge.c +++ b/hw/pci-bridge/pci_expander_bridge.c @@ -85,8 +85,14 @@ static uint16_t pxb_bus_numa_node(PCIBus *bus) static void prop_pxb_uid_get(Object *obj, Visitor *v, const char *name, void *opaque, Error **errp) { - uint32_t uid = pci_bus_num(PCI_BUS(obj)); + PCIBus *bus = PCI_BUS(obj); + uint32_t uid; + if (!bus->parent_dev) { + error_setg(errp, "bus not attached to a device"); + return; + } + uid = pci_bus_num(bus); visit_type_uint32(v, name, &uid, errp); }