]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
Revert "Drop unneeded deps"
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 May 2022 10:18:44 +0000 (12:18 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 12 May 2022 10:18:44 +0000 (12:18 +0200)
This reverts commit 3fa931b7486a9a3b573218cd7e99011f1b661f92.

queue-5.15/series
queue-5.15/x86-asm-fixup-odd-gen-for-each-reg.h-usage.patch [new file with mode: 0644]
queue-5.15/x86-retpoline-create-a-retpoline-thunk-array.patch [new file with mode: 0644]
queue-5.15/x86-retpoline-move-the-retpoline-thunk-declarations-.patch [new file with mode: 0644]
queue-5.15/x86-retpoline-remove-unused-replacement-symbols.patch [new file with mode: 0644]

index 9c59eb0d421981d4b8339a6c6209e269234967ff..fcb10cb95aa0bca049b6f6bb519ecb40f8938afa 100644 (file)
@@ -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 (file)
index 0000000..83c77c7
--- /dev/null
@@ -0,0 +1,58 @@
+From 189c8a9de6419f817296067f6dd69b8cda5bc71f Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 26 Oct 2021 14:01:39 +0200
+Subject: x86/asm: Fixup odd GEN-for-each-reg.h usage
+
+From: Peter Zijlstra <peterz@infradead.org>
+
+[ 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) <peterz@infradead.org>
+Reviewed-by: Borislav Petkov <bp@suse.de>
+Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
+Tested-by: Alexei Starovoitov <ast@kernel.org>
+Link: https://lore.kernel.org/r/20211026120310.041792350@infradead.org
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ 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 <asm/GEN-for-each-reg.h>
++#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 <asm/GEN-for-each-reg.h>
+-
+ #undef GEN
++
+ #define GEN(reg) EXPORT_THUNK(reg)
+ #include <asm/GEN-for-each-reg.h>
++#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 (file)
index 0000000..280b395
--- /dev/null
@@ -0,0 +1,110 @@
+From 1fb9bdd7cd41ff5e110234ea833b6206accba40b Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 26 Oct 2021 14:01:41 +0200
+Subject: x86/retpoline: Create a retpoline thunk array
+
+From: Peter Zijlstra <peterz@infradead.org>
+
+[ 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) <peterz@infradead.org>
+Reviewed-by: Borislav Petkov <bp@suse.de>
+Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
+Tested-by: Alexei Starovoitov <ast@kernel.org>
+Link: https://lore.kernel.org/r/20211026120310.169659320@infradead.org
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ 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 <asm/msr-index.h>
+ #include <asm/unwind_hints.h>
++#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 <asm/GEN-for-each-reg.h>
+ #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 <asm/GEN-for-each-reg.h>
+ #undef GEN
++      .align RETPOLINE_THUNK_SIZE
++SYM_CODE_END(__x86_indirect_thunk_array)
++
+ #define GEN(reg) EXPORT_THUNK(reg)
+ #include <asm/GEN-for-each-reg.h>
+ #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 (file)
index 0000000..15072aa
--- /dev/null
@@ -0,0 +1,81 @@
+From c67d441c7f8b71db4409ed45c361406c30bc080a Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 26 Oct 2021 14:01:40 +0200
+Subject: x86/retpoline: Move the retpoline thunk declarations to
+ nospec-branch.h
+
+From: Peter Zijlstra <peterz@infradead.org>
+
+[ Upstream commit 6fda8a38865607db739be3e567a2387376222dbd ]
+
+Because it makes no sense to split the retpoline gunk over multiple
+headers.
+
+Signed-off-by: Peter Zijlstra (Intel) <peterz@infradead.org>
+Reviewed-by: Borislav Petkov <bp@suse.de>
+Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
+Tested-by: Alexei Starovoitov <ast@kernel.org>
+Link: https://lore.kernel.org/r/20211026120310.106290934@infradead.org
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ 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 <asm/GEN-for-each-reg.h>
+-#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 <linux/static_key.h>
+ #include <linux/objtool.h>
++#include <linux/linkage.h>
+ #include <asm/alternative.h>
+ #include <asm/cpufeatures.h>
+@@ -118,6 +119,12 @@
+       ".popsection\n\t"
+ #ifdef CONFIG_RETPOLINE
++
++#define GEN(reg) \
++      extern asmlinkage void __x86_indirect_thunk_ ## reg (void);
++#include <asm/GEN-for-each-reg.h>
++#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 <asm/set_memory.h>
+ #include <asm/nospec-branch.h>
+ #include <asm/text-patching.h>
+-#include <asm/asm-prototypes.h>
+ 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 (file)
index 0000000..dd1d2c6
--- /dev/null
@@ -0,0 +1,102 @@
+From 4dfd0ccdfe9580b2fb11accf61246dc01d0321f7 Mon Sep 17 00:00:00 2001
+From: Sasha Levin <sashal@kernel.org>
+Date: Tue, 26 Oct 2021 14:01:37 +0200
+Subject: x86/retpoline: Remove unused replacement symbols
+
+From: Peter Zijlstra <peterz@infradead.org>
+
+[ 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) <peterz@infradead.org>
+Reviewed-by: Borislav Petkov <bp@suse.de>
+Acked-by: Josh Poimboeuf <jpoimboe@redhat.com>
+Tested-by: Alexei Starovoitov <ast@kernel.org>
+Link: https://lore.kernel.org/r/20211026120309.915051744@infradead.org
+Signed-off-by: Sasha Levin <sashal@kernel.org>
+---
+ 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 <asm/GEN-for-each-reg.h>
+-#undef GEN
+-#define GEN(reg) \
+-      extern asmlinkage void __x86_indirect_alt_call_ ## reg (void);
+-#include <asm/GEN-for-each-reg.h>
+-
+-#undef GEN
+-#define GEN(reg) \
+-      extern asmlinkage void __x86_indirect_alt_jmp_ ## reg (void);
+-#include <asm/GEN-for-each-reg.h>
+-
+ #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 <asm/GEN-for-each-reg.h>
+-
+-#undef GEN
+-#define GEN(reg) ALT_THUNK reg
+-#include <asm/GEN-for-each-reg.h>
+-
+-#undef GEN
+-#define GEN(reg) __EXPORT_THUNK(__x86_indirect_alt_call_ ## reg)
+-#include <asm/GEN-for-each-reg.h>
+-
+-#undef GEN
+-#define GEN(reg) __EXPORT_THUNK(__x86_indirect_alt_jmp_ ## reg)
+-#include <asm/GEN-for-each-reg.h>
+-- 
+2.35.1
+