Integrated PCI devices can be either PCIe (virtio-iommu) or conventional PCI (pvpanic-pci). Right now libvirt will refuse to assign an address on pcie.0 for the latter, but that's an undesirable limitation that we can easily remove. Signed-off-by: Andrea Bolognani <abologna@xxxxxxxxxx> --- src/conf/domain_addr.c | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/conf/domain_addr.c b/src/conf/domain_addr.c index 76f9c12ca6..b6534f502c 100644 --- a/src/conf/domain_addr.c +++ b/src/conf/domain_addr.c @@ -306,8 +306,11 @@ virDomainPCIAddressFlagsCompatible(virPCIDeviceAddress *addr, if (addr->bus == 0) { /* pcie-root doesn't usually allow endpoint devices to be * plugged directly into it, but for integrated devices - * that's exactly what we want */ - busFlags |= VIR_PCI_CONNECT_AUTOASSIGN; + * that's exactly what we want. It also refuses conventional + * PCI devices by default, but in the case of integrated + * devices both types are fine */ + busFlags |= VIR_PCI_CONNECT_TYPE_PCI_DEVICE | + VIR_PCI_CONNECT_AUTOASSIGN; } else { if (reportError) { virReportError(errType, -- 2.39.1