|
|
@@ -1,4 +1,4 @@
|
|
|
-From c59a61438e9a8f24a50171ac9d3b98e8f3719d07 Mon Sep 17 00:00:00 2001
|
|
|
+From 711a55c9d58955a2bfca89cd25935ca607e49bc0 Mon Sep 17 00:00:00 2001
|
|
|
From: Jim Mattson <[email protected]>
|
|
|
Date: Wed, 3 Jan 2018 14:31:38 -0800
|
|
|
Subject: [PATCH 232/241] kvm: vmx: Scrub hardware GPRs at VM-exit
|
|
|
@@ -18,11 +18,44 @@ Signed-off-by: Jim Mattson <[email protected]>
|
|
|
Reviewed-by: Eric Northup <[email protected]>
|
|
|
Reviewed-by: Benjamin Serebrin <[email protected]>
|
|
|
Reviewed-by: Andrew Honig <[email protected]>
|
|
|
+[Paolo: Add AMD bits, Signed-off-by: Tom Lendacky <[email protected]>]
|
|
|
+Signed-off-by: Paolo Bonzini <[email protected]>
|
|
|
Signed-off-by: Fabian Grünbichler <[email protected]>
|
|
|
---
|
|
|
+ arch/x86/kvm/svm.c | 19 +++++++++++++++++++
|
|
|
arch/x86/kvm/vmx.c | 14 +++++++++++++-
|
|
|
- 1 file changed, 13 insertions(+), 1 deletion(-)
|
|
|
+ 2 files changed, 32 insertions(+), 1 deletion(-)
|
|
|
|
|
|
+diff --git a/arch/x86/kvm/svm.c b/arch/x86/kvm/svm.c
|
|
|
+index af09baa3d736..92cd94d51e1f 100644
|
|
|
+--- a/arch/x86/kvm/svm.c
|
|
|
++++ b/arch/x86/kvm/svm.c
|
|
|
+@@ -4924,6 +4924,25 @@ static void svm_vcpu_run(struct kvm_vcpu *vcpu)
|
|
|
+ "mov %%r13, %c[r13](%[svm]) \n\t"
|
|
|
+ "mov %%r14, %c[r14](%[svm]) \n\t"
|
|
|
+ "mov %%r15, %c[r15](%[svm]) \n\t"
|
|
|
++#endif
|
|
|
++ /*
|
|
|
++ * Clear host registers marked as clobbered to prevent
|
|
|
++ * speculative use.
|
|
|
++ */
|
|
|
++ "xor %%" _ASM_BX ", %%" _ASM_BX " \n\t"
|
|
|
++ "xor %%" _ASM_CX ", %%" _ASM_CX " \n\t"
|
|
|
++ "xor %%" _ASM_DX ", %%" _ASM_DX " \n\t"
|
|
|
++ "xor %%" _ASM_SI ", %%" _ASM_SI " \n\t"
|
|
|
++ "xor %%" _ASM_DI ", %%" _ASM_DI " \n\t"
|
|
|
++#ifdef CONFIG_X86_64
|
|
|
++ "xor %%r8, %%r8 \n\t"
|
|
|
++ "xor %%r9, %%r9 \n\t"
|
|
|
++ "xor %%r10, %%r10 \n\t"
|
|
|
++ "xor %%r11, %%r11 \n\t"
|
|
|
++ "xor %%r12, %%r12 \n\t"
|
|
|
++ "xor %%r13, %%r13 \n\t"
|
|
|
++ "xor %%r14, %%r14 \n\t"
|
|
|
++ "xor %%r15, %%r15 \n\t"
|
|
|
+ #endif
|
|
|
+ "pop %%" _ASM_BP
|
|
|
+ :
|
|
|
diff --git a/arch/x86/kvm/vmx.c b/arch/x86/kvm/vmx.c
|
|
|
index d61986a36575..9b4256fd589a 100644
|
|
|
--- a/arch/x86/kvm/vmx.c
|