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(a)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