diff options
author | Paolo Bonzini | 2021-03-18 15:02:06 +0100 |
---|---|---|
committer | Paolo Bonzini | 2021-03-19 13:48:18 +0100 |
commit | 687758565ab39028f7310c30355a765f171ff1bf (patch) | |
tree | 6dceb5deb51f951c07b00e0cd66e1537b6299b40 /target/i386/tcg/helper-tcg.h | |
parent | target/i386: fail if toggling LA57 in 64-bit mode (diff) | |
download | qemu-687758565ab39028f7310c30355a765f171ff1bf.tar.gz qemu-687758565ab39028f7310c30355a765f171ff1bf.tar.xz qemu-687758565ab39028f7310c30355a765f171ff1bf.zip |
target/i386: svm: do not discard high 32 bits of EXITINFO1
env->error_code is only 32-bits wide, so the high 32 bits of EXITINFO1
are being lost. However, even though saving guest state and restoring
host state must be delayed to do_vmexit, because they might take tb_lock,
it is always possible to write to the VMCB. So do this for the exit
code and EXITINFO1, just like it is already being done for EXITINFO2.
Signed-off-by: Paolo Bonzini <pbonzini@redhat.com>
Diffstat (limited to 'target/i386/tcg/helper-tcg.h')
-rw-r--r-- | target/i386/tcg/helper-tcg.h | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/target/i386/tcg/helper-tcg.h b/target/i386/tcg/helper-tcg.h index ef60e2e04b..bcdfca06f6 100644 --- a/target/i386/tcg/helper-tcg.h +++ b/target/i386/tcg/helper-tcg.h @@ -80,7 +80,7 @@ void cpu_load_eflags(CPUX86State *env, int eflags, int update_mask); /* svm_helper.c */ void QEMU_NORETURN cpu_vmexit(CPUX86State *nenv, uint32_t exit_code, uint64_t exit_info_1, uintptr_t retaddr); -void do_vmexit(CPUX86State *env, uint32_t exit_code, uint64_t exit_info_1); +void do_vmexit(CPUX86State *env); /* seg_helper.c */ void do_interrupt_x86_hardirq(CPUX86State *env, int intno, int is_hw); |