]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
KVM: SVM: Set synthesized TSA CPUID flags
authorBorislav Petkov (AMD) <bp@alien8.de>
Fri, 12 Sep 2025 22:29:15 +0000 (18:29 -0400)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Fri, 19 Sep 2025 14:29:56 +0000 (16:29 +0200)
Commit f3f9deccfc68a6b7c8c1cc51e902edba23d309d4 in the LTS tree.

VERW_CLEAR is supposed to be set only by the hypervisor to denote TSA
mitigation support to a guest. SQ_NO and L1_NO are both synthesizable,
and are going to be set by hw CPUID on future machines.

So keep the kvm_cpu_cap_init_kvm_defined() invocation *and* set them
when synthesized.

This fix is stable-only.

Co-developed-by: Jinpu Wang <jinpu.wang@ionos.com>
Signed-off-by: Jinpu Wang <jinpu.wang@ionos.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Cc: <stable@vger.kernel.org> # 6.1.y
Signed-off-by: Boris Ostrovsky <boris.ostrovsky@oracle.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/kvm/cpuid.c

index e53ccf8a090d3a7d1e884815eaa9597a80bc76a5..db508118891d0abfddf3362ad2253dbcbbce6f95 100644 (file)
@@ -770,10 +770,15 @@ void kvm_set_cpu_caps(void)
        if (cpu_feature_enabled(X86_FEATURE_SRSO_NO))
                kvm_cpu_cap_set(X86_FEATURE_SRSO_NO);
 
+       kvm_cpu_cap_check_and_set(X86_FEATURE_VERW_CLEAR);
+
        kvm_cpu_cap_init_kvm_defined(CPUID_8000_0021_ECX,
                F(TSA_SQ_NO) | F(TSA_L1_NO)
        );
 
+       kvm_cpu_cap_check_and_set(X86_FEATURE_TSA_SQ_NO);
+       kvm_cpu_cap_check_and_set(X86_FEATURE_TSA_L1_NO);
+
        /*
         * Hide RDTSCP and RDPID if either feature is reported as supported but
         * probing MSR_TSC_AUX failed.  This is purely a sanity check and