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(a)redhat.com>
---
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