From 28094095fe6e4b05b25e459a34d93d195b7afb62 Mon Sep 17 00:00:00 2001 Message-Id: <28094095fe6e4b05b25e459a34d93d195b7afb62@dist-git> From: Laine Stump Date: Sun, 26 Apr 2020 13:17:02 -0400 Subject: [PATCH] conf: check HOTPLUGGABLE connect flag when validating a PCI address 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 Reviewed-by: Michal Privoznik (cherry picked from commit a283189f8c64882681ea99259ccfc8d1b8e524dd) https://bugzilla.redhat.com/1802592 Signed-off-by: Laine Stump Message-Id: <20200426171703.18808-2-laine@redhat.com> Reviewed-by: Michal Privoznik --- src/conf/domain_addr.c | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/src/conf/domain_addr.c b/src/conf/domain_addr.c index cc45a0bbf1..ed41eca114 100644 --- a/src/conf/domain_addr.c +++ b/src/conf/domain_addr.c @@ -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. -- 2.26.2