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
This commit is contained in:
Peter Krempa 2017-06-28 10:42:49 +02:00
parent 0f0c0921e6
commit b183f17d76

View File

@ -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;
}