[libvirt PATCH] conf: Allow conventional PCI devices to be marked as integrated

Andrea Bolognani abologna at redhat.com
Thu Feb 9 18:00:24 UTC 2023


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 at 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



More information about the libvir-list mailing list