Merge branch 'kvm-late-6.1' into HEAD
[platform/kernel/linux-starfive.git] / arch / x86 / kvm / reverse_cpuid.h
index 042d0ac..4945456 100644 (file)
@@ -14,6 +14,7 @@
 enum kvm_only_cpuid_leafs {
        CPUID_12_EAX     = NCAPINTS,
        CPUID_7_1_EDX,
+       CPUID_8000_0007_EDX,
        NR_KVM_CPU_CAPS,
 
        NKVMCAPINTS = NR_KVM_CPU_CAPS - NCAPINTS,
@@ -43,6 +44,9 @@ enum kvm_only_cpuid_leafs {
 #define X86_FEATURE_AVX_NE_CONVERT      KVM_X86_FEATURE(CPUID_7_1_EDX, 5)
 #define X86_FEATURE_PREFETCHITI         KVM_X86_FEATURE(CPUID_7_1_EDX, 14)
 
+/* CPUID level 0x80000007 (EDX). */
+#define KVM_X86_FEATURE_CONSTANT_TSC   KVM_X86_FEATURE(CPUID_8000_0007_EDX, 8)
+
 struct cpuid_reg {
        u32 function;
        u32 index;
@@ -68,6 +72,7 @@ static const struct cpuid_reg reverse_cpuid[] = {
        [CPUID_12_EAX]        = {0x00000012, 0, CPUID_EAX},
        [CPUID_8000_001F_EAX] = {0x8000001f, 0, CPUID_EAX},
        [CPUID_7_1_EDX]       = {         7, 1, CPUID_EDX},
+       [CPUID_8000_0007_EDX] = {0x80000007, 0, CPUID_EDX},
 };
 
 /*
@@ -100,6 +105,8 @@ static __always_inline u32 __feature_translate(int x86_feature)
                return KVM_X86_FEATURE_SGX2;
        else if (x86_feature == X86_FEATURE_SGX_EDECCSSA)
                return KVM_X86_FEATURE_SGX_EDECCSSA;
+       else if (x86_feature == X86_FEATURE_CONSTANT_TSC)
+               return KVM_X86_FEATURE_CONSTANT_TSC;
 
        return x86_feature;
 }