From 79ff3d2257f604a61465d6893a63e5c13acfd781 Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Thu, 21 Jul 2022 20:01:48 +0200 Subject: [PATCH] drop some more retbleed patches from 5.18 queue --- queue-5.18/series | 2 - .../x86-cpu-amd-add-spectral-chicken.patch | 117 --------------- .../x86-xen-rename-sys-entry-points.patch | 142 ------------------ 3 files changed, 261 deletions(-) delete mode 100644 queue-5.18/x86-cpu-amd-add-spectral-chicken.patch delete mode 100644 queue-5.18/x86-xen-rename-sys-entry-points.patch diff --git a/queue-5.18/series b/queue-5.18/series index 584b09f4433..c823d6367b4 100644 --- a/queue-5.18/series +++ b/queue-5.18/series @@ -142,8 +142,6 @@ net-atlantic-remove-aq_nic_deinit-when-resume.patch kvm-x86-fully-initialize-struct-kvm_lapic_irq-in-kvm.patch net-tls-check-for-errors-in-tls_device_init.patch mm-sysctl-fix-missing-numa_stat-when-config_hugetlb_.patch -x86-xen-rename-sys-entry-points.patch -x86-cpu-amd-add-spectral-chicken.patch arm-9211-1-domain-drop-modify_domain.patch arm-9212-1-domain-modify-kconfig-help-text.patch asoc-dt-bindings-fix-description-for-msm8916.patch diff --git a/queue-5.18/x86-cpu-amd-add-spectral-chicken.patch b/queue-5.18/x86-cpu-amd-add-spectral-chicken.patch deleted file mode 100644 index 47f514762ef..00000000000 --- a/queue-5.18/x86-cpu-amd-add-spectral-chicken.patch +++ /dev/null @@ -1,117 +0,0 @@ -From bbbf9cd770a7ba5109e077ca099dc062d1ad9518 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 14 Jun 2022 23:16:04 +0200 -Subject: x86/cpu/amd: Add Spectral Chicken - -From: Peter Zijlstra - -[ Upstream commit d7caac991feeef1b871ee6988fd2c9725df09039 ] - -Zen2 uarchs have an undocumented, unnamed, MSR that contains a chicken -bit for some speculation behaviour. It needs setting. - -Note: very belatedly AMD released naming; it's now officially called - MSR_AMD64_DE_CFG2 and MSR_AMD64_DE_CFG2_SUPPRESS_NOBR_PRED_BIT - but shall remain the SPECTRAL CHICKEN. - -Suggested-by: Andrew Cooper -Signed-off-by: Peter Zijlstra (Intel) -Signed-off-by: Borislav Petkov -Reviewed-by: Josh Poimboeuf -Signed-off-by: Borislav Petkov -Signed-off-by: Sasha Levin ---- - arch/x86/include/asm/msr-index.h | 3 +++ - arch/x86/kernel/cpu/amd.c | 23 ++++++++++++++++++++++- - arch/x86/kernel/cpu/cpu.h | 2 ++ - arch/x86/kernel/cpu/hygon.c | 6 ++++++ - 4 files changed, 33 insertions(+), 1 deletion(-) - -diff --git a/arch/x86/include/asm/msr-index.h b/arch/x86/include/asm/msr-index.h -index 4425d6773183..d15d0ef6b357 100644 ---- a/arch/x86/include/asm/msr-index.h -+++ b/arch/x86/include/asm/msr-index.h -@@ -552,6 +552,9 @@ - /* Fam 17h MSRs */ - #define MSR_F17H_IRPERF 0xc00000e9 - -+#define MSR_ZEN2_SPECTRAL_CHICKEN 0xc00110e3 -+#define MSR_ZEN2_SPECTRAL_CHICKEN_BIT BIT_ULL(1) -+ - /* Fam 16h MSRs */ - #define MSR_F16H_L2I_PERF_CTL 0xc0010230 - #define MSR_F16H_L2I_PERF_CTR 0xc0010231 -diff --git a/arch/x86/kernel/cpu/amd.c b/arch/x86/kernel/cpu/amd.c -index 0c0b09796ced..8cf0659c0521 100644 ---- a/arch/x86/kernel/cpu/amd.c -+++ b/arch/x86/kernel/cpu/amd.c -@@ -862,6 +862,26 @@ static void init_amd_bd(struct cpuinfo_x86 *c) - clear_rdrand_cpuid_bit(c); - } - -+void init_spectral_chicken(struct cpuinfo_x86 *c) -+{ -+ u64 value; -+ -+ /* -+ * On Zen2 we offer this chicken (bit) on the altar of Speculation. -+ * -+ * This suppresses speculation from the middle of a basic block, i.e. it -+ * suppresses non-branch predictions. -+ * -+ * We use STIBP as a heuristic to filter out Zen2 from the rest of F17H -+ */ -+ if (!cpu_has(c, X86_FEATURE_HYPERVISOR) && cpu_has(c, X86_FEATURE_AMD_STIBP)) { -+ if (!rdmsrl_safe(MSR_ZEN2_SPECTRAL_CHICKEN, &value)) { -+ value |= MSR_ZEN2_SPECTRAL_CHICKEN_BIT; -+ wrmsrl_safe(MSR_ZEN2_SPECTRAL_CHICKEN, value); -+ } -+ } -+} -+ - static void init_amd_zn(struct cpuinfo_x86 *c) - { - set_cpu_cap(c, X86_FEATURE_ZEN); -@@ -907,7 +927,8 @@ static void init_amd(struct cpuinfo_x86 *c) - case 0x12: init_amd_ln(c); break; - case 0x15: init_amd_bd(c); break; - case 0x16: init_amd_jg(c); break; -- case 0x17: fallthrough; -+ case 0x17: init_spectral_chicken(c); -+ fallthrough; - case 0x19: init_amd_zn(c); break; - } - -diff --git a/arch/x86/kernel/cpu/cpu.h b/arch/x86/kernel/cpu/cpu.h -index 2a8e584fc991..7c9b5893c30a 100644 ---- a/arch/x86/kernel/cpu/cpu.h -+++ b/arch/x86/kernel/cpu/cpu.h -@@ -61,6 +61,8 @@ static inline void tsx_init(void) { } - static inline void tsx_ap_init(void) { } - #endif /* CONFIG_CPU_SUP_INTEL */ - -+extern void init_spectral_chicken(struct cpuinfo_x86 *c); -+ - extern void get_cpu_cap(struct cpuinfo_x86 *c); - extern void get_cpu_address_sizes(struct cpuinfo_x86 *c); - extern void cpu_detect_cache_sizes(struct cpuinfo_x86 *c); -diff --git a/arch/x86/kernel/cpu/hygon.c b/arch/x86/kernel/cpu/hygon.c -index 3fcdda4c1e11..21fd425088fe 100644 ---- a/arch/x86/kernel/cpu/hygon.c -+++ b/arch/x86/kernel/cpu/hygon.c -@@ -302,6 +302,12 @@ static void init_hygon(struct cpuinfo_x86 *c) - /* get apicid instead of initial apic id from cpuid */ - c->apicid = hard_smp_processor_id(); - -+ /* -+ * XXX someone from Hygon needs to confirm this DTRT -+ * -+ init_spectral_chicken(c); -+ */ -+ - set_cpu_cap(c, X86_FEATURE_ZEN); - set_cpu_cap(c, X86_FEATURE_CPB); - --- -2.35.1 - diff --git a/queue-5.18/x86-xen-rename-sys-entry-points.patch b/queue-5.18/x86-xen-rename-sys-entry-points.patch deleted file mode 100644 index 26bface5b70..00000000000 --- a/queue-5.18/x86-xen-rename-sys-entry-points.patch +++ /dev/null @@ -1,142 +0,0 @@ -From 8656f768ea3921fb8f9789696dd2b95e46b94c02 Mon Sep 17 00:00:00 2001 -From: Sasha Levin -Date: Tue, 14 Jun 2022 23:16:00 +0200 -Subject: x86/xen: Rename SYS* entry points - -From: Peter Zijlstra - -[ Upstream commit b75b7f8ef1148be1b9321ffc2f6c19238904b438 ] - -Native SYS{CALL,ENTER} entry points are called -entry_SYS{CALL,ENTER}_{64,compat}, make sure the Xen versions are -named consistently. - -Signed-off-by: Peter Zijlstra (Intel) -Signed-off-by: Borislav Petkov -Reviewed-by: Josh Poimboeuf -Signed-off-by: Borislav Petkov -Signed-off-by: Sasha Levin ---- - arch/x86/xen/setup.c | 6 +++--- - arch/x86/xen/xen-asm.S | 20 ++++++++++---------- - arch/x86/xen/xen-ops.h | 6 +++--- - 3 files changed, 16 insertions(+), 16 deletions(-) - -diff --git a/arch/x86/xen/setup.c b/arch/x86/xen/setup.c -index 81aa46f770c5..cfa99e8f054b 100644 ---- a/arch/x86/xen/setup.c -+++ b/arch/x86/xen/setup.c -@@ -918,7 +918,7 @@ void xen_enable_sysenter(void) - if (!boot_cpu_has(sysenter_feature)) - return; - -- ret = register_callback(CALLBACKTYPE_sysenter, xen_sysenter_target); -+ ret = register_callback(CALLBACKTYPE_sysenter, xen_entry_SYSENTER_compat); - if(ret != 0) - setup_clear_cpu_cap(sysenter_feature); - } -@@ -927,7 +927,7 @@ void xen_enable_syscall(void) - { - int ret; - -- ret = register_callback(CALLBACKTYPE_syscall, xen_syscall_target); -+ ret = register_callback(CALLBACKTYPE_syscall, xen_entry_SYSCALL_64); - if (ret != 0) { - printk(KERN_ERR "Failed to set syscall callback: %d\n", ret); - /* Pretty fatal; 64-bit userspace has no other -@@ -936,7 +936,7 @@ void xen_enable_syscall(void) - - if (boot_cpu_has(X86_FEATURE_SYSCALL32)) { - ret = register_callback(CALLBACKTYPE_syscall32, -- xen_syscall32_target); -+ xen_entry_SYSCALL_compat); - if (ret != 0) - setup_clear_cpu_cap(X86_FEATURE_SYSCALL32); - } -diff --git a/arch/x86/xen/xen-asm.S b/arch/x86/xen/xen-asm.S -index caa9bc2fa100..6bf9d45b9178 100644 ---- a/arch/x86/xen/xen-asm.S -+++ b/arch/x86/xen/xen-asm.S -@@ -234,7 +234,7 @@ SYM_CODE_END(xenpv_restore_regs_and_return_to_usermode) - */ - - /* Normal 64-bit system call target */ --SYM_CODE_START(xen_syscall_target) -+SYM_CODE_START(xen_entry_SYSCALL_64) - UNWIND_HINT_EMPTY - ENDBR - popq %rcx -@@ -249,12 +249,12 @@ SYM_CODE_START(xen_syscall_target) - movq $__USER_CS, 1*8(%rsp) - - jmp entry_SYSCALL_64_after_hwframe --SYM_CODE_END(xen_syscall_target) -+SYM_CODE_END(xen_entry_SYSCALL_64) - - #ifdef CONFIG_IA32_EMULATION - - /* 32-bit compat syscall target */ --SYM_CODE_START(xen_syscall32_target) -+SYM_CODE_START(xen_entry_SYSCALL_compat) - UNWIND_HINT_EMPTY - ENDBR - popq %rcx -@@ -269,10 +269,10 @@ SYM_CODE_START(xen_syscall32_target) - movq $__USER32_CS, 1*8(%rsp) - - jmp entry_SYSCALL_compat_after_hwframe --SYM_CODE_END(xen_syscall32_target) -+SYM_CODE_END(xen_entry_SYSCALL_compat) - - /* 32-bit compat sysenter target */ --SYM_CODE_START(xen_sysenter_target) -+SYM_CODE_START(xen_entry_SYSENTER_compat) - UNWIND_HINT_EMPTY - ENDBR - /* -@@ -291,19 +291,19 @@ SYM_CODE_START(xen_sysenter_target) - movq $__USER32_CS, 1*8(%rsp) - - jmp entry_SYSENTER_compat_after_hwframe --SYM_CODE_END(xen_sysenter_target) -+SYM_CODE_END(xen_entry_SYSENTER_compat) - - #else /* !CONFIG_IA32_EMULATION */ - --SYM_CODE_START(xen_syscall32_target) --SYM_CODE_START(xen_sysenter_target) -+SYM_CODE_START(xen_entry_SYSCALL_compat) -+SYM_CODE_START(xen_entry_SYSENTER_compat) - UNWIND_HINT_EMPTY - ENDBR - lea 16(%rsp), %rsp /* strip %rcx, %r11 */ - mov $-ENOSYS, %rax - pushq $0 - jmp hypercall_iret --SYM_CODE_END(xen_sysenter_target) --SYM_CODE_END(xen_syscall32_target) -+SYM_CODE_END(xen_entry_SYSENTER_compat) -+SYM_CODE_END(xen_entry_SYSCALL_compat) - - #endif /* CONFIG_IA32_EMULATION */ -diff --git a/arch/x86/xen/xen-ops.h b/arch/x86/xen/xen-ops.h -index fd0fec6e92f4..9a8bb972193d 100644 ---- a/arch/x86/xen/xen-ops.h -+++ b/arch/x86/xen/xen-ops.h -@@ -10,10 +10,10 @@ - /* These are code, but not functions. Defined in entry.S */ - extern const char xen_failsafe_callback[]; - --void xen_sysenter_target(void); -+void xen_entry_SYSENTER_compat(void); - #ifdef CONFIG_X86_64 --void xen_syscall_target(void); --void xen_syscall32_target(void); -+void xen_entry_SYSCALL_64(void); -+void xen_entry_SYSCALL_compat(void); - #endif - - extern void *xen_initial_gdt; --- -2.35.1 - -- 2.47.3