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:
Andrew Cooper authored and Jan Beulich committed 2018-02-14 12:38:07 +01:00
1 parent f7e273a07c
commit 75263f7908
2 files changed
+6 -33

No files matched your search

+4 -18
View File
@@ -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
+2 -15
View File
@@ -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)
Reference in new issue
Block a user
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.