]> git.ipfire.org Git - thirdparty/libvirt.git/commitdiff
conf: during PCI hotplug, require that the controller support hotplug
authorLaine Stump <laine@redhat.com>
Mon, 6 Apr 2020 03:44:16 +0000 (23:44 -0400)
committerLaine Stump <laine@redhat.com>
Mon, 13 Apr 2020 02:43:48 +0000 (22:43 -0400)
Before this patch we would simply rely on QEMU failing to attach the
device. Since we have a flag in the address set telling us which
controllers support hotplug, we can fail the operation sooner.

This also assures that when hotplugging with no provided PCI address,
that we skip any controllers with hotplug='off', and attempt to assign
the device to a controller that not only supports hotplug, but also
has it enabled.

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

index 580cf7e64d3ea5e1d88e2499e514129a1318acc5..5652bc9a330f833a4d676021fadad2fdf08eab23 100644 (file)
@@ -931,6 +931,11 @@ virDomainPCIAddressEnsureAddr(virDomainPCIAddressSetPtr addrs,
     if (!flags)
        return 0;
 
+    /* This function is only called during hotplug, so we require hotplug
+     * support from the controller.
+     */
+    flags |= VIR_PCI_CONNECT_HOTPLUGGABLE;
+
     if (!(addrStr = virPCIDeviceAddressAsString(&dev->addr.pci)))
         return -1;