Paolo Bonzini <pbonz...@redhat.com> writes: > Il 20/08/2014 13:36, Michael S. Tsirkin ha scritto: >> >> For pci bridges, unless you set bus_name, bus name will >> match device itself. See this code: >> >> * If we don't specify the name, the bus will be addressed as >> * <id>.0, where id is the device id. >> * Since PCI Bridge devices have a single bus each, we don't need >> * the index: >> * let users address the bus using the device name. >> */ >> if (!br->bus_name && dev->qdev.id && *dev->qdev.id) { >> br->bus_name = dev->qdev.id; >> } > > Is libvirt using this rule? If not, I'd rather slash it since the > <id>.0 name is shared with all other buses and not PCI-bridge-specific.
br->bus_name is null unless pci_bridge_map_irq() set it. Only caller for ioh3420 is ioh3420_init(), and that's dead code. Therefore, br->bus_name is null here. Libvirt always sets a device ID. Slashing this this special case would change the bus name from ID.0 to just ID. That'll break libvirt, as far as I can tell from its source. Sad.