mirror of
https://github.com/xen-project/xen.git
synced 2026-10-29 18:50:05 +01:00
x86/hvm: Use SAVE_ALL to construct the cpu_user_regs frame after VMExit
No practical change.
One side effect in debug builds is that %rbp is inverted in the manner
expected by the stack unwinder to indicate a interrupt frame.
This is part of XSA-254.
Signed-off-by: Andrew Cooper <andrew.cooper3@citrix.com>
Reviewed-by: Jan Beulich <jbeulich@suse.com>
Reviewed-by: Wei Liu <wei.liu2@citrix.com>
master commit: 13682ca8c9
master date: 2018-01-05 19:57:08 +0000
This commit is contained in:
1 parent
f7e273a07c
commit
75263f7908
2 files changed
+6
-33
No files matched your search
@@ -97,24 +97,10 @@ UNLIKELY_END(svm_trace)
|
||||
|
||||
VMRUN
|
||||
|
||||
GET_CURRENT(%rax)
|
||||
push %rdi
|
||||
push %rsi
|
||||
push %rdx
|
||||
push %rcx
|
||||
mov VCPU_svm_vmcb(%rax),%rcx
|
||||
push %rax
|
||||
push %r8
|
||||
push %r9
|
||||
push %r10
|
||||
push %r11
|
||||
push %rbx
|
||||
mov %rax,%rbx
|
||||
push %rbp
|
||||
push %r12
|
||||
push %r13
|
||||
push %r14
|
||||
push %r15
|
||||
SAVE_ALL
|
||||
|
||||
GET_CURRENT(%rbx)
|
||||
mov VCPU_svm_vmcb(%rbx),%rcx
|
||||
|
||||
movb $0,VCPU_svm_vmcb_in_sync(%rbx)
|
||||
mov VMCB_rax(%rcx),%rax
|
||||
|
||||
@@ -29,23 +29,10 @@
|
||||
#define VMLAUNCH .byte 0x0f,0x01,0xc2
|
||||
|
||||
ENTRY(vmx_asm_vmexit_handler)
|
||||
push %rdi
|
||||
push %rsi
|
||||
push %rdx
|
||||
push %rcx
|
||||
push %rax
|
||||
SAVE_ALL
|
||||
|
||||
mov %cr2,%rax
|
||||
push %r8
|
||||
push %r9
|
||||
push %r10
|
||||
push %r11
|
||||
push %rbx
|
||||
GET_CURRENT(%rbx)
|
||||
push %rbp
|
||||
push %r12
|
||||
push %r13
|
||||
push %r14
|
||||
push %r15
|
||||
|
||||
movb $1,VCPU_vmx_launched(%rbx)
|
||||
mov %rax,VCPU_hvm_guest_cr2(%rbx)
|
||||
|
||||