mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2024-08-28 11:31:16 +00:00
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.
This commit is contained in:
parent
81e6f68d0e
commit
d75202915e
@ -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;
|
||||
}
|
||||
|
||||
|
@ -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)",
|
||||
|
Loading…
Reference in New Issue
Block a user