From: John Ferlan Date: Fri, 7 Dec 2018 14:46:48 +0000 (-0500) Subject: conf: Add check/error for domain supports cold/hotplug X-Git-Url: http://xenbits.xensource.com/gitweb?a=commitdiff_plain;h=3972a25f1d4f9c75d73faaac9106fc16037de645;p=libvirt.git conf: Add check/error for domain supports cold/hotplug https://bugzilla.redhat.com/show_bug.cgi?id=1624336 Add a check during virDomainDefCompatibleDevice whether the domain supports cold/hotplug of a memory module even though this duplicates the qemuDomainDefValidateMemoryHotplug check. Without this check, the cold/hot plug would fail on the subsequent mem_memory check (since it's 0). Adding a check for max_memory > 0 would allow the subsequent hotplug check to fail, but would cause coldplug to fail with the somewhat opaque message "no free memory device slot available". Signed-off-by: John Ferlan ACKed-by: Michal Privoznik --- diff --git a/src/conf/domain_conf.c b/src/conf/domain_conf.c index 89f444b967..ae8fb5a501 100644 --- a/src/conf/domain_conf.c +++ b/src/conf/domain_conf.c @@ -28923,6 +28923,13 @@ virDomainDefCompatibleDevice(virDomainDefPtr def, if (dev->type == VIR_DOMAIN_DEVICE_MEMORY) { unsigned long long sz = dev->data.memory->size; + if (!virDomainDefHasMemoryHotplug(def)) { + virReportError(VIR_ERR_CONFIG_UNSUPPORTED, "%s", + _("cannot use/hotplug a memory device when domain " + "'maxMemory' is not defined")); + return -1; + } + if ((virDomainDefGetMemoryTotal(def) + sz) > def->mem.max_memory) { virReportError(VIR_ERR_CONFIG_UNSUPPORTED, _("Attaching memory device with size '%llu' would "