From d75202915e26006d46d21bd756ba387c7b8909eb Mon Sep 17 00:00:00 2001 From: Cole Robinson Date: Mon, 22 Nov 2010 13:55:58 -0500 Subject: [PATCH] qemu: setvcpus: Fix maxvcpus check 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. --- 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 18b3f16764..058a8f058d 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 5e737e8675..d32568fc17 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)", -- GitLab