From: Greg Kroah-Hartman Date: Thu, 12 May 2022 10:18:44 +0000 (+0200) Subject: Revert "Drop unneeded deps" X-Git-Tag: v4.19.242~2 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=ce1b11579b714b79257989c9f97d94fcff8ad366;p=thirdparty%2Fkernel%2Fstable-queue.git Revert "Drop unneeded deps" This reverts commit 3fa931b7486a9a3b573218cd7e99011f1b661f92. --- diff --git a/queue-5.15/series b/queue-5.15/series index 9c59eb0d421..fcb10cb95aa 100644 --- a/queue-5.15/series +++ b/queue-5.15/series @@ -138,6 +138,10 @@ x86-prepare-asm-files-for-straight-line-speculation.patch x86-prepare-inline-asm-for-straight-line-speculation.patch objtool-add-straight-line-speculation-validation.patch x86-alternative-relax-text_poke_bp-constraint.patch +x86-retpoline-remove-unused-replacement-symbols.patch +x86-asm-fixup-odd-gen-for-each-reg.h-usage.patch +x86-retpoline-move-the-retpoline-thunk-declarations-.patch +x86-retpoline-create-a-retpoline-thunk-array.patch kbuild-move-objtool_args-back-to-scripts-makefile.bu.patch x86-add-straight-line-speculation-mitigation.patch tools-arch-update-arch-x86-lib-mem-cpy-set-_64.s-cop.patch diff --git a/queue-5.15/x86-asm-fixup-odd-gen-for-each-reg.h-usage.patch b/queue-5.15/x86-asm-fixup-odd-gen-for-each-reg.h-usage.patch new file mode 100644 index 00000000000..83c77c79fbc --- /dev/null +++ b/queue-5.15/x86-asm-fixup-odd-gen-for-each-reg.h-usage.patch @@ -0,0 +1,58 @@ +From 189c8a9de6419f817296067f6dd69b8cda5bc71f Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 26 Oct 2021 14:01:39 +0200 +Subject: x86/asm: Fixup odd GEN-for-each-reg.h usage + +From: Peter Zijlstra + +[ Upstream commit b6d3d9944bd7c9e8c06994ead3c9952f673f2a66 ] + +Currently GEN-for-each-reg.h usage leaves GEN defined, relying on any +subsequent usage to start with #undef, which is rude. + +Signed-off-by: Peter Zijlstra (Intel) +Reviewed-by: Borislav Petkov +Acked-by: Josh Poimboeuf +Tested-by: Alexei Starovoitov +Link: https://lore.kernel.org/r/20211026120310.041792350@infradead.org +Signed-off-by: Sasha Levin +--- + arch/x86/include/asm/asm-prototypes.h | 2 +- + arch/x86/lib/retpoline.S | 4 ++-- + 2 files changed, 3 insertions(+), 3 deletions(-) + +diff --git a/arch/x86/include/asm/asm-prototypes.h b/arch/x86/include/asm/asm-prototypes.h +index a28c5cab893d..a2bed09d3c11 100644 +--- a/arch/x86/include/asm/asm-prototypes.h ++++ b/arch/x86/include/asm/asm-prototypes.h +@@ -19,9 +19,9 @@ extern void cmpxchg8b_emu(void); + + #ifdef CONFIG_RETPOLINE + +-#undef GEN + #define GEN(reg) \ + extern asmlinkage void __x86_indirect_thunk_ ## reg (void); + #include ++#undef GEN + + #endif /* CONFIG_RETPOLINE */ +diff --git a/arch/x86/lib/retpoline.S b/arch/x86/lib/retpoline.S +index 7e0e66efa932..8077b5880d71 100644 +--- a/arch/x86/lib/retpoline.S ++++ b/arch/x86/lib/retpoline.S +@@ -55,10 +55,10 @@ SYM_FUNC_END(__x86_indirect_thunk_\reg) + #define __EXPORT_THUNK(sym) _ASM_NOKPROBE(sym); EXPORT_SYMBOL(sym) + #define EXPORT_THUNK(reg) __EXPORT_THUNK(__x86_indirect_thunk_ ## reg) + +-#undef GEN + #define GEN(reg) THUNK reg + #include +- + #undef GEN ++ + #define GEN(reg) EXPORT_THUNK(reg) + #include ++#undef GEN +-- +2.35.1 + diff --git a/queue-5.15/x86-retpoline-create-a-retpoline-thunk-array.patch b/queue-5.15/x86-retpoline-create-a-retpoline-thunk-array.patch new file mode 100644 index 00000000000..280b39588ee --- /dev/null +++ b/queue-5.15/x86-retpoline-create-a-retpoline-thunk-array.patch @@ -0,0 +1,110 @@ +From 1fb9bdd7cd41ff5e110234ea833b6206accba40b Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 26 Oct 2021 14:01:41 +0200 +Subject: x86/retpoline: Create a retpoline thunk array + +From: Peter Zijlstra + +[ Upstream commit 1a6f74429c42a3854980359a758e222005712aee ] + +Stick all the retpolines in a single symbol and have the individual +thunks as inner labels, this should guarantee thunk order and layout. + +Previously there were 16 (or rather 15 without rsp) separate symbols and +a toolchain might reasonably expect it could displace them however it +liked, with disregard for their relative position. + +However, now they're part of a larger symbol. Any change to their +relative position would disrupt this larger _array symbol and thus not +be sound. + +This is the same reasoning used for data symbols. On their own there +is no guarantee about their relative position wrt to one aonther, but +we're still able to do arrays because an array as a whole is a single +larger symbol. + +Signed-off-by: Peter Zijlstra (Intel) +Reviewed-by: Borislav Petkov +Acked-by: Josh Poimboeuf +Tested-by: Alexei Starovoitov +Link: https://lore.kernel.org/r/20211026120310.169659320@infradead.org +Signed-off-by: Sasha Levin +--- + arch/x86/include/asm/nospec-branch.h | 8 +++++++- + arch/x86/lib/retpoline.S | 14 +++++++++----- + 2 files changed, 16 insertions(+), 6 deletions(-) + +diff --git a/arch/x86/include/asm/nospec-branch.h b/arch/x86/include/asm/nospec-branch.h +index ff062c479298..59b6ef67995d 100644 +--- a/arch/x86/include/asm/nospec-branch.h ++++ b/arch/x86/include/asm/nospec-branch.h +@@ -12,6 +12,8 @@ + #include + #include + ++#define RETPOLINE_THUNK_SIZE 32 ++ + /* + * Fill the CPU return stack buffer. + * +@@ -120,11 +122,15 @@ + + #ifdef CONFIG_RETPOLINE + ++typedef u8 retpoline_thunk_t[RETPOLINE_THUNK_SIZE]; ++ + #define GEN(reg) \ +- extern asmlinkage void __x86_indirect_thunk_ ## reg (void); ++ extern retpoline_thunk_t __x86_indirect_thunk_ ## reg; + #include + #undef GEN + ++extern retpoline_thunk_t __x86_indirect_thunk_array[]; ++ + #ifdef CONFIG_X86_64 + + /* +diff --git a/arch/x86/lib/retpoline.S b/arch/x86/lib/retpoline.S +index 8077b5880d71..8904c076a1df 100644 +--- a/arch/x86/lib/retpoline.S ++++ b/arch/x86/lib/retpoline.S +@@ -28,16 +28,14 @@ + + .macro THUNK reg + +- .align 32 +- +-SYM_FUNC_START(__x86_indirect_thunk_\reg) ++ .align RETPOLINE_THUNK_SIZE ++SYM_INNER_LABEL(__x86_indirect_thunk_\reg, SYM_L_GLOBAL) ++ UNWIND_HINT_EMPTY + + ALTERNATIVE_2 __stringify(ANNOTATE_RETPOLINE_SAFE; jmp *%\reg), \ + __stringify(RETPOLINE \reg), X86_FEATURE_RETPOLINE, \ + __stringify(lfence; ANNOTATE_RETPOLINE_SAFE; jmp *%\reg), X86_FEATURE_RETPOLINE_LFENCE + +-SYM_FUNC_END(__x86_indirect_thunk_\reg) +- + .endm + + /* +@@ -55,10 +53,16 @@ SYM_FUNC_END(__x86_indirect_thunk_\reg) + #define __EXPORT_THUNK(sym) _ASM_NOKPROBE(sym); EXPORT_SYMBOL(sym) + #define EXPORT_THUNK(reg) __EXPORT_THUNK(__x86_indirect_thunk_ ## reg) + ++ .align RETPOLINE_THUNK_SIZE ++SYM_CODE_START(__x86_indirect_thunk_array) ++ + #define GEN(reg) THUNK reg + #include + #undef GEN + ++ .align RETPOLINE_THUNK_SIZE ++SYM_CODE_END(__x86_indirect_thunk_array) ++ + #define GEN(reg) EXPORT_THUNK(reg) + #include + #undef GEN +-- +2.35.1 + diff --git a/queue-5.15/x86-retpoline-move-the-retpoline-thunk-declarations-.patch b/queue-5.15/x86-retpoline-move-the-retpoline-thunk-declarations-.patch new file mode 100644 index 00000000000..15072aaf735 --- /dev/null +++ b/queue-5.15/x86-retpoline-move-the-retpoline-thunk-declarations-.patch @@ -0,0 +1,81 @@ +From c67d441c7f8b71db4409ed45c361406c30bc080a Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 26 Oct 2021 14:01:40 +0200 +Subject: x86/retpoline: Move the retpoline thunk declarations to + nospec-branch.h + +From: Peter Zijlstra + +[ Upstream commit 6fda8a38865607db739be3e567a2387376222dbd ] + +Because it makes no sense to split the retpoline gunk over multiple +headers. + +Signed-off-by: Peter Zijlstra (Intel) +Reviewed-by: Borislav Petkov +Acked-by: Josh Poimboeuf +Tested-by: Alexei Starovoitov +Link: https://lore.kernel.org/r/20211026120310.106290934@infradead.org +Signed-off-by: Sasha Levin +--- + arch/x86/include/asm/asm-prototypes.h | 8 -------- + arch/x86/include/asm/nospec-branch.h | 7 +++++++ + arch/x86/net/bpf_jit_comp.c | 1 - + 3 files changed, 7 insertions(+), 9 deletions(-) + +diff --git a/arch/x86/include/asm/asm-prototypes.h b/arch/x86/include/asm/asm-prototypes.h +index a2bed09d3c11..8f80de627c60 100644 +--- a/arch/x86/include/asm/asm-prototypes.h ++++ b/arch/x86/include/asm/asm-prototypes.h +@@ -17,11 +17,3 @@ + extern void cmpxchg8b_emu(void); + #endif + +-#ifdef CONFIG_RETPOLINE +- +-#define GEN(reg) \ +- extern asmlinkage void __x86_indirect_thunk_ ## reg (void); +-#include +-#undef GEN +- +-#endif /* CONFIG_RETPOLINE */ +diff --git a/arch/x86/include/asm/nospec-branch.h b/arch/x86/include/asm/nospec-branch.h +index b3dd514f80a0..ff062c479298 100644 +--- a/arch/x86/include/asm/nospec-branch.h ++++ b/arch/x86/include/asm/nospec-branch.h +@@ -5,6 +5,7 @@ + + #include + #include ++#include + + #include + #include +@@ -118,6 +119,12 @@ + ".popsection\n\t" + + #ifdef CONFIG_RETPOLINE ++ ++#define GEN(reg) \ ++ extern asmlinkage void __x86_indirect_thunk_ ## reg (void); ++#include ++#undef GEN ++ + #ifdef CONFIG_X86_64 + + /* +diff --git a/arch/x86/net/bpf_jit_comp.c b/arch/x86/net/bpf_jit_comp.c +index d99434dc215c..f59367bea03a 100644 +--- a/arch/x86/net/bpf_jit_comp.c ++++ b/arch/x86/net/bpf_jit_comp.c +@@ -15,7 +15,6 @@ + #include + #include + #include +-#include + + static u8 *emit_code(u8 *ptr, u32 bytes, unsigned int len) + { +-- +2.35.1 + diff --git a/queue-5.15/x86-retpoline-remove-unused-replacement-symbols.patch b/queue-5.15/x86-retpoline-remove-unused-replacement-symbols.patch new file mode 100644 index 00000000000..dd1d2c6a80c --- /dev/null +++ b/queue-5.15/x86-retpoline-remove-unused-replacement-symbols.patch @@ -0,0 +1,102 @@ +From 4dfd0ccdfe9580b2fb11accf61246dc01d0321f7 Mon Sep 17 00:00:00 2001 +From: Sasha Levin +Date: Tue, 26 Oct 2021 14:01:37 +0200 +Subject: x86/retpoline: Remove unused replacement symbols + +From: Peter Zijlstra + +[ Upstream commit 4fe79e710d9574a14993f8b4e16b7252da72d5e8 ] + +Now that objtool no longer creates alternatives, these replacement +symbols are no longer needed, remove them. + +Signed-off-by: Peter Zijlstra (Intel) +Reviewed-by: Borislav Petkov +Acked-by: Josh Poimboeuf +Tested-by: Alexei Starovoitov +Link: https://lore.kernel.org/r/20211026120309.915051744@infradead.org +Signed-off-by: Sasha Levin +--- + arch/x86/include/asm/asm-prototypes.h | 10 ------- + arch/x86/lib/retpoline.S | 42 --------------------------- + 2 files changed, 52 deletions(-) + +diff --git a/arch/x86/include/asm/asm-prototypes.h b/arch/x86/include/asm/asm-prototypes.h +index 4cb726c71ed8..a28c5cab893d 100644 +--- a/arch/x86/include/asm/asm-prototypes.h ++++ b/arch/x86/include/asm/asm-prototypes.h +@@ -24,14 +24,4 @@ extern void cmpxchg8b_emu(void); + extern asmlinkage void __x86_indirect_thunk_ ## reg (void); + #include + +-#undef GEN +-#define GEN(reg) \ +- extern asmlinkage void __x86_indirect_alt_call_ ## reg (void); +-#include +- +-#undef GEN +-#define GEN(reg) \ +- extern asmlinkage void __x86_indirect_alt_jmp_ ## reg (void); +-#include +- + #endif /* CONFIG_RETPOLINE */ +diff --git a/arch/x86/lib/retpoline.S b/arch/x86/lib/retpoline.S +index d7455ee92f84..7e0e66efa932 100644 +--- a/arch/x86/lib/retpoline.S ++++ b/arch/x86/lib/retpoline.S +@@ -40,36 +40,6 @@ SYM_FUNC_END(__x86_indirect_thunk_\reg) + + .endm + +-/* +- * This generates .altinstr_replacement symbols for use by objtool. They, +- * however, must not actually live in .altinstr_replacement since that will be +- * discarded after init, but module alternatives will also reference these +- * symbols. +- * +- * Their names matches the "__x86_indirect_" prefix to mark them as retpolines. +- */ +-.macro ALT_THUNK reg +- +- .align 1 +- +-SYM_FUNC_START_NOALIGN(__x86_indirect_alt_call_\reg) +- ANNOTATE_RETPOLINE_SAFE +-1: call *%\reg +-2: .skip 5-(2b-1b), 0x90 +-SYM_FUNC_END(__x86_indirect_alt_call_\reg) +- +-STACK_FRAME_NON_STANDARD(__x86_indirect_alt_call_\reg) +- +-SYM_FUNC_START_NOALIGN(__x86_indirect_alt_jmp_\reg) +- ANNOTATE_RETPOLINE_SAFE +-1: jmp *%\reg +-2: .skip 5-(2b-1b), 0x90 +-SYM_FUNC_END(__x86_indirect_alt_jmp_\reg) +- +-STACK_FRAME_NON_STANDARD(__x86_indirect_alt_jmp_\reg) +- +-.endm +- + /* + * Despite being an assembler file we can't just use .irp here + * because __KSYM_DEPS__ only uses the C preprocessor and would +@@ -92,15 +62,3 @@ STACK_FRAME_NON_STANDARD(__x86_indirect_alt_jmp_\reg) + #undef GEN + #define GEN(reg) EXPORT_THUNK(reg) + #include +- +-#undef GEN +-#define GEN(reg) ALT_THUNK reg +-#include +- +-#undef GEN +-#define GEN(reg) __EXPORT_THUNK(__x86_indirect_alt_call_ ## reg) +-#include +- +-#undef GEN +-#define GEN(reg) __EXPORT_THUNK(__x86_indirect_alt_jmp_ ## reg) +-#include +-- +2.35.1 +