1 From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
2 From: Tim Chen <tim.c.chen@linux.intel.com>
3 Date: Fri, 20 Oct 2017 17:05:54 -0700
4 Subject: [PATCH] x86/kvm: Pad RSB on VM transition
6 Content-Type: text/plain; charset=UTF-8
7 Content-Transfer-Encoding: 8bit
12 Add code to pad the local CPU's RSB entries to protect
13 from previous less privilege mode.
15 Signed-off-by: Tim Chen <tim.c.chen@linux.intel.com>
16 Signed-off-by: Andy Whitcroft <apw@canonical.com>
17 Signed-off-by: Kleber Sacilotto de Souza <kleber.souza@canonical.com>
18 (cherry picked from commit 5369368d3520addb2ffb2413cfa7e8f3efe2e31d)
19 Signed-off-by: Fabian Grünbichler <f.gruenbichler@proxmox.com>
21 arch/x86/include/asm/kvm_host.h | 103 ++++++++++++++++++++++++++++++++++++++++
22 arch/x86/kvm/vmx.c | 2 +
23 2 files changed, 105 insertions(+)
25 diff --git a/arch/x86/include/asm/kvm_host.h b/arch/x86/include/asm/kvm_host.h
26 index 1953c0a5b972..4117a97228a2 100644
27 --- a/arch/x86/include/asm/kvm_host.h
28 +++ b/arch/x86/include/asm/kvm_host.h
29 @@ -125,6 +125,109 @@ static inline gfn_t gfn_to_index(gfn_t gfn, gfn_t base_gfn, int level)
31 #define ASYNC_PF_PER_VCPU 64
33 +static inline void stuff_RSB(void)
35 + __asm__ __volatile__(" \n\
132 + add $(32*8), %%rsp \n\
139 diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
140 index 57d538fc7c75..496884b6467f 100644
141 --- a/arch/x86/kvm/vmx.c
142 +++ b/arch/x86/kvm/vmx.c
143 @@ -9228,6 +9228,8 @@ static void __noclone vmx_vcpu_run(struct kvm_vcpu *vcpu)
149 /* MSR_IA32_DEBUGCTLMSR is zeroed on vmexit. Restore it if needed */
151 update_debugctlmsr(debugctlmsr);