mirror of
https://gitlab.com/libvirt/libvirt.git
synced 2025-02-22 11:22:23 +00:00
Take disabled/forced CPU features into account
When comparing x86 CPUs, features with 'disabled' policy were mistakenly required to be supported by the host CPU. Likewise, features with 'force' policy which were supported by host CPU would make CPUs incompatible if 'strict' match was used by guest CPU. This patch fixes both issues. Signed-off-by: Jiri Denemark <jdenemar@redhat.com>
This commit is contained in:
parent
5d462bd0b3
commit
5e13b7ab5e
@ -829,11 +829,14 @@ x86Compute(virCPUDefPtr host,
|
||||
if (!(cpu_forbid = x86ModelFromCPU(cpu, map, VIR_CPU_FEATURE_FORBID)))
|
||||
goto error;
|
||||
|
||||
x86ModelSubtract(cpu_require, cpu_disable);
|
||||
|
||||
if ((diff = x86ModelCopy(host_model)) == NULL)
|
||||
goto no_memory;
|
||||
|
||||
x86ModelSubtract(diff, cpu_require);
|
||||
x86ModelSubtract(diff, cpu_optional);
|
||||
x86ModelSubtract(diff, cpu_force);
|
||||
|
||||
for (i = 0; i < cpu_forbid->ncpuid; i++) {
|
||||
const struct cpuX86cpuid *cpuid1;
|
||||
|
Loading…
x
Reference in New Issue
Block a user