[libvirt] [PATCH 4/6] qemu: setvcpus: Fix maxvcpus check

Cole Robinson crobinso at redhat.com
Mon Nov 22 21:35:32 UTC 2010


Doing 'virsh setvcpus $vm --config 10' doesn't check the value against the
domains maxvcpus value. A larger value for example will prevent the guest
from starting.

Also make a similar change to the test driver.

Signed-off-by: Cole Robinson <crobinso at redhat.com>
---
 src/qemu/qemu_driver.c |    3 +--
 src/test/test_driver.c |    5 +++--
 2 files changed, 4 insertions(+), 4 deletions(-)

diff --git a/src/qemu/qemu_driver.c b/src/qemu/qemu_driver.c
index 18b3f16..058a8f0 100644
--- a/src/qemu/qemu_driver.c
+++ b/src/qemu/qemu_driver.c
@@ -6322,8 +6322,7 @@ qemudDomainSetVcpusFlags(virDomainPtr dom, unsigned int nvcpus,
         goto endjob;
     }
 
-    if ((flags & (VIR_DOMAIN_VCPU_MAXIMUM | VIR_DOMAIN_VCPU_LIVE)) ==
-        VIR_DOMAIN_VCPU_LIVE && vm->def->maxvcpus < max) {
+    if (!(flags & VIR_DOMAIN_VCPU_MAXIMUM) && vm->def->maxvcpus < max) {
         max = vm->def->maxvcpus;
     }
 
diff --git a/src/test/test_driver.c b/src/test/test_driver.c
index 5e737e8..d32568f 100644
--- a/src/test/test_driver.c
+++ b/src/test/test_driver.c
@@ -2134,9 +2134,10 @@ testDomainSetVcpusFlags(virDomainPtr domain, unsigned int nrCpus,
 
     /* We allow more cpus in guest than host, but not more than the
      * domain's starting limit.  */
-    if ((flags & (VIR_DOMAIN_VCPU_MAXIMUM | VIR_DOMAIN_VCPU_LIVE)) ==
-        VIR_DOMAIN_VCPU_LIVE && privdom->def->maxvcpus < maxvcpus)
+    if (!(flags & (VIR_DOMAIN_VCPU_MAXIMUM)) &&
+        privdom->def->maxvcpus < maxvcpus)
         maxvcpus = privdom->def->maxvcpus;
+
     if (nrCpus > maxvcpus) {
         testError(VIR_ERR_INVALID_ARG,
                   "requested cpu amount exceeds maximum (%d > %d)",
-- 
1.7.3.2




More information about the libvir-list mailing list