提交 b183f17d 编写于 作者: P Peter Krempa

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
上级 0f0c0921
...@@ -5884,18 +5884,17 @@ qemuDomainFilterHotplugVcpuEntities(virDomainDefPtr def, ...@@ -5884,18 +5884,17 @@ qemuDomainFilterHotplugVcpuEntities(virDomainDefPtr def,
static int static int
qemuDomainVcpuValidateConfig(virDomainDefPtr def, qemuDomainVcpuValidateConfig(virDomainDefPtr def,
virBitmapPtr map, virBitmapPtr map)
bool state)
{ {
virDomainVcpuDefPtr vcpu; virDomainVcpuDefPtr vcpu;
size_t maxvcpus = virDomainDefGetVcpusMax(def); size_t maxvcpus = virDomainDefGetVcpusMax(def);
ssize_t next; ssize_t next;
ssize_t firstvcpu = -1; ssize_t firstvcpu = -1;
/* vcpu 0 can't be disabled */ /* vcpu 0 can't be modified */
if (!state && virBitmapIsBitSet(map, 0)) { if (virBitmapIsBitSet(map, 0)) {
virReportError(VIR_ERR_INVALID_ARG, "%s", virReportError(VIR_ERR_INVALID_ARG, "%s",
_("vCPU '0' must be enabled")); _("vCPU '0' can't be modified"));
return -1; return -1;
} }
...@@ -5959,7 +5958,7 @@ qemuDomainSetVcpuInternal(virQEMUDriverPtr driver, ...@@ -5959,7 +5958,7 @@ qemuDomainSetVcpuInternal(virQEMUDriverPtr driver,
} }
if (persistentDef) { if (persistentDef) {
if (qemuDomainVcpuValidateConfig(persistentDef, map, state) < 0) if (qemuDomainVcpuValidateConfig(persistentDef, map) < 0)
goto cleanup; goto cleanup;
} }
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册