diff --git a/src/qemu/qemu_domain_address.c b/src/qemu/qemu_domain_address.c index 099778b2a8..979bc8a9fd 100644 --- a/src/qemu/qemu_domain_address.c +++ b/src/qemu/qemu_domain_address.c @@ -2829,10 +2829,16 @@ qemuDomainAssignPCIAddresses(virDomainDef *def, * controllers don't plug into any other PCI controller, hence * they should skip this step */ if (bus->model != VIR_DOMAIN_CONTROLLER_MODEL_PCI_ROOT && - bus->model != VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT && - qemuDomainPCIAddressReserveNextAddr(addrs, - &dev.data.controller->info) < 0) { - goto cleanup; + bus->model != VIR_DOMAIN_CONTROLLER_MODEL_PCIE_ROOT) { + if (qemuDomainPCIAddressReserveNextAddr(addrs, + &dev.data.controller->info) < 0) + goto cleanup; + + if (qemuDomainFillDevicePCIExtensionFlagsIter(NULL, &dev, &dev.data.controller->info, qemuCaps) < 0) + goto cleanup; + + if (qemuDomainAssignPCIAddressExtension(NULL, NULL, &dev.data.controller->info, addrs) < 0) + goto cleanup; } } diff --git a/tests/qemuxml2xmloutdata/hostdev-vfio-zpci-boundaries.s390x-latest.xml b/tests/qemuxml2xmloutdata/hostdev-vfio-zpci-boundaries.s390x-latest.xml index 8b0044af1c..6a4cf53313 100644 --- a/tests/qemuxml2xmloutdata/hostdev-vfio-zpci-boundaries.s390x-latest.xml +++ b/tests/qemuxml2xmloutdata/hostdev-vfio-zpci-boundaries.s390x-latest.xml @@ -21,7 +21,9 @@ -
+
+ +