]> git.proxmox.com Git - mirror_qemu.git/commit - target/i386/cpu.c
i386: do not call cpudef-only models functions for max, host, base
authorClaudio Fontana <cfontana@suse.de>
Fri, 23 Jul 2021 11:29:21 +0000 (13:29 +0200)
committerPaolo Bonzini <pbonzini@redhat.com>
Fri, 23 Jul 2021 13:47:13 +0000 (15:47 +0200)
commit5b8978d8042660de35b2c67c62ffeb6b42ff441e
tree6e1205da9c17e198c66fec9230d2b82d9183500c
parent3407259b20ccb5f53183bc50605da6f229dc2de2
i386: do not call cpudef-only models functions for max, host, base

Some cpu properties have to be set only for cpu models in builtin_x86_defs,
registered with x86_register_cpu_model_type, and not for
cpu models "base", "max", and the subclass "host".

These properties are the ones set by function x86_cpu_apply_props,
(also including kvm_default_props, tcg_default_props),
and the "vendor" property for the KVM and HVF accelerators.

After recent refactoring of cpu, which also affected these properties,
they were instead set unconditionally for all x86 cpus.

This has been detected as a bug with Nested on AMD with cpu "host",
as svm was not turned on by default, due to the wrongful setting of
kvm_default_props via x86_cpu_apply_props, which set svm to "off".

Rectify the bug introduced in commit "i386: split cpu accelerators"
and document the functions that are builtin_x86_defs-only.

Signed-off-by: Claudio Fontana <cfontana@suse.de>
Tested-by: Alexander Bulekov <alxndr@bu.edu>
Fixes: f5cc5a5c ("i386: split cpu accelerators from cpu.c,"...)
Resolves: https://gitlab.com/qemu-project/qemu/-/issues/477
Message-Id: <20210723112921.12637-1-cfontana@suse.de>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
target/i386/cpu.c
target/i386/host-cpu.c
target/i386/kvm/kvm-cpu.c
target/i386/tcg/tcg-cpu.c