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
---
src/qemu/qemu_hotplug.c | 11 +++++------
1 file changed, 5 insertions(+), 6 deletions(-)
diff --git a/src/qemu/qemu_hotplug.c b/src/qemu/qemu_hotplug.c
index a486fb4fe..dd030d3d9 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;
}
--
2.12.2