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.
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;
}
/* 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)",