[libvirt] [PATCH] qemu: hotplug: Disallow modification of vcpu 0 in inactive config

Peter Krempa pkrempa at redhat.com
Wed Jun 28 08:51:28 UTC 2017


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




More information about the libvir-list mailing list