OSDN Git Service

x86/cpu, kvm: Add the NO_NESTED_DATA_BP feature
authorKim Phillips <kim.phillips@amd.com>
Tue, 24 Jan 2023 16:33:14 +0000 (10:33 -0600)
committerBorislav Petkov (AMD) <bp@alien8.de>
Wed, 25 Jan 2023 11:36:34 +0000 (12:36 +0100)
The "Processor ignores nested data breakpoints" feature was being
open-coded for KVM.  Add the feature to its newly introduced CPUID leaf
0x80000021 EAX proper.

Signed-off-by: Kim Phillips <kim.phillips@amd.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Acked-by: Sean Christopherson <seanjc@google.com>
Link: https://lore.kernel.org/r/20230124163319.2277355-4-kim.phillips@amd.com
arch/x86/include/asm/cpufeatures.h
arch/x86/kvm/cpuid.c

index b890058..1b2d40a 100644 (file)
 #define X86_FEATURE_V_TSC_AUX          (19*32+ 9) /* "" Virtual TSC_AUX */
 #define X86_FEATURE_SME_COHERENT       (19*32+10) /* "" AMD hardware-enforced cache coherency */
 
+/* AMD-defined Extended Feature 2 EAX, CPUID level 0x80000021 (EAX), word 20 */
+#define X86_FEATURE_NO_NESTED_DATA_BP  (20*32+ 0) /* "" No Nested Data Breakpoints */
+
 /*
  * BUG word(s)
  */
index f3edc35..aa3a6dc 100644 (file)
@@ -742,7 +742,7 @@ void kvm_set_cpu_caps(void)
                F(SME_COHERENT));
 
        kvm_cpu_cap_mask(CPUID_8000_0021_EAX,
-               BIT(0) /* NO_NESTED_DATA_BP */ |
+               F(NO_NESTED_DATA_BP) |
                BIT(2) /* LFENCE Always serializing */ | 0 /* SmmPgCfgLock */ |
                BIT(6) /* NULL_SEL_CLR_BASE */ | 0 /* PrefetchCtlMsr */
        );