]> xenbits.xensource.com Git - libvirt.git/commitdiff
qemu: hotplug: Disallow modification of vcpu 0 in inactive config
authorPeter Krempa <pkrempa@redhat.com>
Wed, 28 Jun 2017 08:42:49 +0000 (10:42 +0200)
committerPeter Krempa <pkrempa@redhat.com>
Wed, 28 Jun 2017 12:23:28 +0000 (14:23 +0200)
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

index a486fb4fe334613fe0eb1b05c27adde067d72f27..dd030d3d9f3c8067ff05f729f6921884d26cb61c 100644 (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;
     }