aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kvm/vmx/vmx_ops.h
diff options
context:
space:
mode:
authorJosh Poimboeuf <jpoimboe@kernel.org>2022-06-14 23:16:16 +0200
committerBorislav Petkov <bp@suse.de>2022-06-27 10:34:00 +0200
commit07853adc29a058c5fd143c14e5ac528448a72ed9 (patch)
tree6336e1982537e7d9db862efcaa66157bf400b1ce /arch/x86/kvm/vmx/vmx_ops.h
parentx86/speculation: Fill RSB on vmexit for IBRS (diff)
downloadlinux-dev-07853adc29a058c5fd143c14e5ac528448a72ed9.tar.xz
linux-dev-07853adc29a058c5fd143c14e5ac528448a72ed9.zip
KVM: VMX: Prevent RSB underflow before vmenter
On VMX, there are some balanced returns between the time the guest's SPEC_CTRL value is written, and the vmenter. Balanced returns (matched by a preceding call) are usually ok, but it's at least theoretically possible an NMI with a deep call stack could empty the RSB before one of the returns. For maximum paranoia, don't allow *any* returns (balanced or otherwise) between the SPEC_CTRL write and the vmenter. [ bp: Fix 32-bit build. ] Signed-off-by: Josh Poimboeuf <jpoimboe@kernel.org> Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org> Signed-off-by: Borislav Petkov <bp@suse.de>
Diffstat (limited to '')
-rw-r--r--arch/x86/kvm/vmx/vmx_ops.h2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/x86/kvm/vmx/vmx_ops.h b/arch/x86/kvm/vmx/vmx_ops.h
index 5e7f41225780..5cfc49ddb1b4 100644
--- a/arch/x86/kvm/vmx/vmx_ops.h
+++ b/arch/x86/kvm/vmx/vmx_ops.h
@@ -8,7 +8,7 @@
#include "evmcs.h"
#include "vmcs.h"
-#include "x86.h"
+#include "../x86.h"
asmlinkage void vmread_error(unsigned long field, bool fault);
__attribute__((regparm(0))) void vmread_error_trampoline(unsigned long field,