aboutsummaryrefslogtreecommitdiffstats
path: root/queue-5.15
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-03-27 11:41:56 +0100
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2024-03-27 11:41:56 +0100
commitc0205e737d350dc713147c4cff98da966ee1e019 (patch)
tree3b35667808fdad44bad64678a50b7d4e9588c602 /queue-5.15
parent52ca0779a84664eb28e9b02485a1af82694b482c (diff)
downloadstable-queue-c0205e737d350dc713147c4cff98da966ee1e019.tar.gz
fix up some mis-applied kvm patches
Diffstat (limited to 'queue-5.15')
-rw-r--r--queue-5.15/kvm-x86-advertise-cpuid.-eax-7-ecx-2-edx-to-userspace.patch59
1 files changed, 26 insertions, 33 deletions
diff --git a/queue-5.15/kvm-x86-advertise-cpuid.-eax-7-ecx-2-edx-to-userspace.patch b/queue-5.15/kvm-x86-advertise-cpuid.-eax-7-ecx-2-edx-to-userspace.patch
index d09ea19494..2ec9750c38 100644
--- a/queue-5.15/kvm-x86-advertise-cpuid.-eax-7-ecx-2-edx-to-userspace.patch
+++ b/queue-5.15/kvm-x86-advertise-cpuid.-eax-7-ecx-2-edx-to-userspace.patch
@@ -24,16 +24,14 @@ Link: https://lore.kernel.org/r/20231024001636.890236-1-jmattson@google.com
Signed-off-by: Sean Christopherson <seanjc@google.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
---
- arch/x86/kvm/cpuid.c | 21 ++++++++++++++++++---
- arch/x86/kvm/reverse_cpuid.h | 12 ++++++++++++
+ arch/x86/kvm/cpuid.c | 21 ++++++++++++++++++---
+ arch/x86/kvm/reverse_cpuid.h | 12 ++++++++++++
2 files changed, 30 insertions(+), 3 deletions(-)
-diff --git a/arch/x86/kvm/cpuid.c b/arch/x86/kvm/cpuid.c
-index dda6fc4cfae8..1811a9ddfe1d 100644
--- a/arch/x86/kvm/cpuid.c
+++ b/arch/x86/kvm/cpuid.c
-@@ -679,6 +679,11 @@ void kvm_set_cpu_caps(void)
- F(AMX_COMPLEX)
+@@ -469,6 +469,11 @@ void kvm_set_cpu_caps(void)
+ F(AVX_VNNI) | F(AVX512_BF16)
);
+ kvm_cpu_cap_init_kvm_defined(CPUID_7_2_EDX,
@@ -42,9 +40,9 @@ index dda6fc4cfae8..1811a9ddfe1d 100644
+ );
+
kvm_cpu_cap_mask(CPUID_D_1_EAX,
- F(XSAVEOPT) | F(XSAVEC) | F(XGETBV1) | F(XSAVES) | f_xfd
+ F(XSAVEOPT) | F(XSAVEC) | F(XGETBV1) | F(XSAVES)
);
-@@ -960,13 +965,13 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function)
+@@ -710,13 +715,13 @@ static inline int __do_cpuid_func(struct
break;
/* function 7 has additional index. */
case 7:
@@ -61,9 +59,9 @@ index dda6fc4cfae8..1811a9ddfe1d 100644
entry = do_host_cpuid(array, function, 1);
if (!entry)
goto out;
-@@ -976,6 +981,16 @@ static inline int __do_cpuid_func(struct kvm_cpuid_array *array, u32 function)
- entry->ebx = 0;
+@@ -726,6 +731,16 @@ static inline int __do_cpuid_func(struct
entry->ecx = 0;
+ entry->edx = 0;
}
+ if (max_idx >= 2) {
+ entry = do_host_cpuid(array, function, 2);
@@ -77,22 +75,20 @@ index dda6fc4cfae8..1811a9ddfe1d 100644
+ }
break;
case 0xa: { /* Architectural Performance Monitoring */
- union cpuid10_eax eax;
-diff --git a/arch/x86/kvm/reverse_cpuid.h b/arch/x86/kvm/reverse_cpuid.h
-index b81650678375..17007016d8b5 100644
+ struct x86_pmu_capability cap;
--- a/arch/x86/kvm/reverse_cpuid.h
+++ b/arch/x86/kvm/reverse_cpuid.h
-@@ -16,6 +16,7 @@ enum kvm_only_cpuid_leafs {
- CPUID_7_1_EDX,
- CPUID_8000_0007_EDX,
- CPUID_8000_0022_EAX,
+@@ -13,6 +13,7 @@
+ */
+ enum kvm_only_cpuid_leafs {
+ CPUID_12_EAX = NCAPINTS,
+ CPUID_7_2_EDX,
NR_KVM_CPU_CAPS,
NKVMCAPINTS = NR_KVM_CPU_CAPS - NCAPINTS,
-@@ -46,6 +47,14 @@ enum kvm_only_cpuid_leafs {
- #define X86_FEATURE_AMX_COMPLEX KVM_X86_FEATURE(CPUID_7_1_EDX, 8)
- #define X86_FEATURE_PREFETCHITI KVM_X86_FEATURE(CPUID_7_1_EDX, 14)
+@@ -36,6 +37,14 @@ enum kvm_only_cpuid_leafs {
+ #define KVM_X86_FEATURE_SGX1 KVM_X86_FEATURE(CPUID_12_EAX, 0)
+ #define KVM_X86_FEATURE_SGX2 KVM_X86_FEATURE(CPUID_12_EAX, 1)
+/* Intel-defined sub-features, CPUID level 0x00000007:2 (EDX) */
+#define X86_FEATURE_INTEL_PSFD KVM_X86_FEATURE(CPUID_7_2_EDX, 0)
@@ -102,26 +98,23 @@ index b81650678375..17007016d8b5 100644
+#define X86_FEATURE_BHI_CTRL KVM_X86_FEATURE(CPUID_7_2_EDX, 4)
+#define X86_FEATURE_MCDT_NO KVM_X86_FEATURE(CPUID_7_2_EDX, 5)
+
- /* CPUID level 0x80000007 (EDX). */
- #define KVM_X86_FEATURE_CONSTANT_TSC KVM_X86_FEATURE(CPUID_8000_0007_EDX, 8)
-
-@@ -80,6 +89,7 @@ static const struct cpuid_reg reverse_cpuid[] = {
- [CPUID_8000_0007_EDX] = {0x80000007, 0, CPUID_EDX},
+ struct cpuid_reg {
+ u32 function;
+ u32 index;
+@@ -61,6 +70,7 @@ static const struct cpuid_reg reverse_cp
+ [CPUID_12_EAX] = {0x00000012, 0, CPUID_EAX},
+ [CPUID_8000_001F_EAX] = {0x8000001f, 0, CPUID_EAX},
[CPUID_8000_0021_EAX] = {0x80000021, 0, CPUID_EAX},
- [CPUID_8000_0022_EAX] = {0x80000022, 0, CPUID_EAX},
+ [CPUID_7_2_EDX] = { 7, 2, CPUID_EDX},
};
/*
-@@ -116,6 +126,8 @@ static __always_inline u32 __feature_translate(int x86_feature)
- return KVM_X86_FEATURE_CONSTANT_TSC;
- else if (x86_feature == X86_FEATURE_PERFMON_V2)
- return KVM_X86_FEATURE_PERFMON_V2;
+@@ -91,6 +101,8 @@ static __always_inline u32 __feature_tra
+ return KVM_X86_FEATURE_SGX1;
+ else if (x86_feature == X86_FEATURE_SGX2)
+ return KVM_X86_FEATURE_SGX2;
+ else if (x86_feature == X86_FEATURE_RRSBA_CTRL)
+ return KVM_X86_FEATURE_RRSBA_CTRL;
return x86_feature;
}
---
-2.44.0
-