]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
x86/bugs: KVM: Move VM_CLEAR_CPU_BUFFERS into SVM as SVM_CLEAR_CPU_BUFFERS
authorSean Christopherson <seanjc@google.com>
Thu, 13 Nov 2025 23:37:43 +0000 (15:37 -0800)
committerSean Christopherson <seanjc@google.com>
Wed, 19 Nov 2025 00:22:43 +0000 (16:22 -0800)
Now that VMX encodes its own sequence for clearing CPU buffers, move
VM_CLEAR_CPU_BUFFERS into SVM to minimize the chances of KVM botching a
mitigation in the future, e.g. using VM_CLEAR_CPU_BUFFERS instead of
checking multiple mitigation flags.

No functional change intended.

Reviewed-by: Brendan Jackman <jackmanb@google.com>
Acked-by: Borislav Petkov (AMD) <bp@alien8.de>
Link: https://patch.msgid.link/20251113233746.1703361-7-seanjc@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
arch/x86/include/asm/nospec-branch.h
arch/x86/kvm/svm/vmenter.S

index afdcdf40e4143516cae3a769d09c5b7c5e574522..a6526c5be5ca438bf42ffc9cc98b2044c99e6995 100644 (file)
 #define CLEAR_CPU_BUFFERS \
        ALTERNATIVE "", __CLEAR_CPU_BUFFERS, X86_FEATURE_CLEAR_CPU_BUF
 
-#define VM_CLEAR_CPU_BUFFERS \
-       ALTERNATIVE "", __CLEAR_CPU_BUFFERS, X86_FEATURE_CLEAR_CPU_BUF_VM
-
 #ifdef CONFIG_X86_64
 .macro CLEAR_BRANCH_HISTORY
        ALTERNATIVE "", "call clear_bhb_loop", X86_FEATURE_CLEAR_BHB_LOOP
index 235c4af6b692a4618ad24e530eb3a19672f69a38..da5f481cb17e3042bce5aa354f9ee687108117b4 100644 (file)
@@ -92,6 +92,8 @@
        jmp 901b
 .endm
 
+#define SVM_CLEAR_CPU_BUFFERS \
+       ALTERNATIVE "", __CLEAR_CPU_BUFFERS, X86_FEATURE_CLEAR_CPU_BUF_VM
 
 /**
  * __svm_vcpu_run - Run a vCPU via a transition to SVM guest mode
@@ -170,7 +172,7 @@ SYM_FUNC_START(__svm_vcpu_run)
        mov VCPU_RDI(%_ASM_DI), %_ASM_DI
 
        /* Clobbers EFLAGS.ZF */
-       VM_CLEAR_CPU_BUFFERS
+       SVM_CLEAR_CPU_BUFFERS
 
        /* Enter guest mode */
 3:     vmrun %_ASM_AX
@@ -339,7 +341,7 @@ SYM_FUNC_START(__svm_sev_es_vcpu_run)
        mov KVM_VMCB_pa(%rax), %rax
 
        /* Clobbers EFLAGS.ZF */
-       VM_CLEAR_CPU_BUFFERS
+       SVM_CLEAR_CPU_BUFFERS
 
        /* Enter guest mode */
 1:     vmrun %rax