]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: check HOTPLUGGABLE connect flag when validating a PCI address
authorLaine Stump <laine@redhat.com>
Mon, 6 Apr 2020 02:57:43 +0000 (22:57 -0400)
committerLaine Stump <laine@redhat.com>
Mon, 13 Apr 2020 02:42:14 +0000 (22:42 -0400)
The HOTPLUGGABLE flag is set for appropriates buses in a PCI address
set, and thnis patch updates virDomainPCIAddressFlagsCompatible() to
check the HOTPLUGGABLE flag when searching for a suitable bus/slot for
a device. No devices request HOTPLUGGABLE though (yet), so there is no
observable effect.

Signed-off-by: Laine Stump <laine@redhat.com>
Reviewed-by: Michal Privoznik <mprivozn@redhat.com>
src/conf/domain_addr.c

index b58989ac8bde9e2ec84156feaf73f6fa6533b1b4..580cf7e64d3ea5e1d88e2499e514129a1318acc5 100644 (file)
@@ -376,6 +376,18 @@ virDomainPCIAddressFlagsCompatible(virPCIDeviceAddressPtr addr,
         return false;
     }
 
+    if ((devFlags & VIR_PCI_CONNECT_HOTPLUGGABLE) &&
+        !(busFlags & VIR_PCI_CONNECT_HOTPLUGGABLE)) {
+        if (reportError) {
+            virReportError(errType,
+                           _("The device at PCI address %s requires "
+                             "hotplug capability, but the PCI controller "
+                             "with index='%d' doesn't support hotplug"),
+                           addrStr, addr->bus);
+        }
+        return false;
+    }
+
     /* If this bus doesn't allow the type of connection (PCI
      * vs. PCIe) required by the device, or if the device requires
      * hot-plug and this bus doesn't have it, return false.