Domain should be determined form parent bus and bus number is configured by guest and should not be used in qemu internally.
Signed-off-by: Gleb Natapov <g...@redhat.com> --- hw/pci.c | 11 ++++++----- 1 files changed, 6 insertions(+), 5 deletions(-) diff --git a/hw/pci.c b/hw/pci.c index 92aaa85..1c5706f 100644 --- a/hw/pci.c +++ b/hw/pci.c @@ -2138,12 +2138,13 @@ static void pcibus_dev_print(Monitor *mon, DeviceState *dev, int indent) static char *pcibus_get_dev_path(DeviceState *dev) { PCIDevice *d = (PCIDevice *)dev; - char path[16]; - - snprintf(path, sizeof(path), "%04x:%02x:%02x.%x", - pci_find_domain(d->bus), d->config[PCI_SECONDARY_BUS], - PCI_SLOT(d->devfn), PCI_FUNC(d->devfn)); + char path[50]; + int off; + off = snprintf(path, sizeof(path), "%...@%x", qdev_driver_name(dev), + PCI_SLOT(d->devfn)); + if (PCI_FUNC(d->devfn)) + snprintf(path + off, sizeof(path) + off, ",%x", PCI_FUNC(d->devfn)); return strdup(path); } -- 1.7.1