From b183f17d76839587cbe411f4e12beca18d3ec702 Mon Sep 17 00:00:00 2001 From: Peter Krempa Date: Jun 28 2017 12:23:28 +0000 Subject: qemu: hotplug: Disallow modification of vcpu 0 in inactive config vcpu 0 must be always enabled and non-hotpluggable, thus you can't modify it using the vcpu hotplug APIs. Disallow it so that users can't create invalid configurations. Resolves: https://bugzilla.redhat.com/show_bug.cgi?id=1459785 --- diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c index a486fb4..dd030d3 100644 --- a/src/qemu/qemu_hotplug.c +++ b/src/qemu/qemu_hotplug.c @@ -5884,18 +5884,17 @@ qemuDomainFilterHotplugVcpuEntities(virDomainDefPtr def, static int qemuDomainVcpuValidateConfig(virDomainDefPtr def, - virBitmapPtr map, - bool state) + virBitmapPtr map) { virDomainVcpuDefPtr vcpu; size_t maxvcpus = virDomainDefGetVcpusMax(def); ssize_t next; ssize_t firstvcpu = -1; - /* vcpu 0 can't be disabled */ - if (!state && virBitmapIsBitSet(map, 0)) { + /* vcpu 0 can't be modified */ + if (virBitmapIsBitSet(map, 0)) { virReportError(VIR_ERR_INVALID_ARG, "%s", - _("vCPU '0' must be enabled")); + _("vCPU '0' can't be modified")); return -1; } @@ -5959,7 +5958,7 @@ qemuDomainSetVcpuInternal(virQEMUDriverPtr driver, } if (persistentDef) { - if (qemuDomainVcpuValidateConfig(persistentDef, map, state) < 0) + if (qemuDomainVcpuValidateConfig(persistentDef, map) < 0) goto cleanup; }