xemu/target/i386
Alexander Graf 106f91d59c hvf: Fetch cr4 before evaluating CPUID(1)
The CPUID function 1 has a bit called OSXSAVE which tells user space the
status of the CR4.OSXSAVE bit. Our generic CPUID function injects that bit
based on the status of CR4.

With Hypervisor.framework, we do not synchronize full CPU state often enough
for this function to see the CR4 update before guest user space asks for it.

To be on the save side, let's just always synchronize it when we receive a
CPUID(1) request. That way we can set the bit with real confidence.

Reported-by: Asad Ali <asad@osaro.com>
Signed-off-by: Alexander Graf <agraf@csgraf.de>
Message-Id: <20210123004129.6364-1-agraf@csgraf.de>
[RB: resolved conflict with another CPUID change]
Signed-off-by: Roman Bolshakov <r.bolshakov@yadro.com>
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
2021-02-16 17:15:39 +01:00
..
hax accel: replace struct CpusAccel with AccelOpsClass 2021-02-05 10:24:15 -10:00
hvf hvf: Fetch cr4 before evaluating CPUID(1) 2021-02-16 17:15:39 +01:00
kvm kvm/i386: Use a per-VM check for SMM capability 2021-02-16 17:15:39 +01:00
tcg target/i86: implement PKS 2021-02-08 14:43:55 +01:00
whpx accel: replace struct CpusAccel with AccelOpsClass 2021-02-05 10:24:15 -10:00
arch_dump.c dump: add kernel_gs_base to QEMU CPU state 2018-07-16 16:13:34 +02:00
arch_memory_mapping.c exec,dump,i386,ppc,s390x: don't include exec/cpu-all.h explicitly 2017-09-19 18:21:33 +02:00
cpu-dump.c i386: move cpu dump out of helper.c into cpu-dump.c 2020-12-16 14:06:53 -05:00
cpu-param.h tcg: Split out target/arch/cpu-param.h 2019-06-10 07:03:34 -07:00
cpu-qom.h qom: Remove module_obj_name parameter from OBJECT_DECLARE* macros 2020-09-18 14:12:32 -04:00
cpu.c sev/i386: Add initial support for SEV-ES 2021-02-16 17:15:39 +01:00
cpu.h target/i386/hvf: add rdmsr 35H MSR_CORE_THREAD_COUNT 2021-02-16 17:15:39 +01:00
gdbstub.c target/i386: Use X86Seg enum for segment registers 2021-01-12 17:05:10 +01:00
helper.c target/i86: implement PKS 2021-02-08 14:43:55 +01:00
helper.h target/i386: fix IEEE SSE floating-point exception raising 2020-07-10 18:02:17 -04:00
machine.c target/i86: implement PKS 2021-02-08 14:43:55 +01:00
meson.build i386: move cpu dump out of helper.c into cpu-dump.c 2020-12-16 14:06:53 -05:00
monitor.c sev: update sev-inject-launch-secret to make gpa optional 2021-02-16 17:15:39 +01:00
ops_sse.h x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
ops_sse_header.h x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
sev-stub.c sev/i386: Allow AP booting under SEV-ES 2021-02-16 17:15:39 +01:00
sev.c sev/i386: Enable an SEV-ES guest based on SEV policy 2021-02-16 17:15:39 +01:00
sev_i386.h sev/i386: Add initial support for SEV-ES 2021-02-16 17:15:39 +01:00
shift_helper_template.h x86 tcg cpus: Fix Lesser GPL version number 2020-11-15 16:41:42 +01:00
svm.h tcg/svm: use host cr4 during NPT page table walk 2020-07-10 18:02:14 -04:00
trace-events i386: move kvm accel files into kvm/ 2020-12-16 14:06:52 -05:00
trace.h trace: switch position of headers to what Meson requires 2020-08-21 06:18:24 -04:00
xsave_helper.c Include qemu-common.h exactly where needed 2019-06-12 13:20:20 +02:00