From db0a97560c5e1f33efdbe86391ff81ae02716e89 Mon Sep 17 00:00:00 2001 From: Locietta Date: Mon, 28 Aug 2023 22:15:58 +0800 Subject: [PATCH] patch: drop in-tree srso-lto-lts patch --- 0003-srso-lto-lts.patch | 137 ---------------------------------------- config-lts.sh | 2 +- 2 files changed, 1 insertion(+), 138 deletions(-) delete mode 100644 0003-srso-lto-lts.patch diff --git a/0003-srso-lto-lts.patch b/0003-srso-lto-lts.patch deleted file mode 100644 index ae95bb5..0000000 --- a/0003-srso-lto-lts.patch +++ /dev/null @@ -1,137 +0,0 @@ -From 767ed637b0952405ef2e0b0f0446e3269341a18e Mon Sep 17 00:00:00 2001 -From: Petr Pavlu -Date: Tue, 11 Jul 2023 11:19:51 +0200 -Subject: [PATCH] x86/retpoline,kprobes: Fix position of thunk sections with - CONFIG_LTO_CLANG - -The linker script arch/x86/kernel/vmlinux.lds.S matches the thunk -sections ".text.__x86.*" from arch/x86/lib/retpoline.S as follows: - - .text { - [...] - TEXT_TEXT - [...] - __indirect_thunk_start = .; - *(.text.__x86.*) - __indirect_thunk_end = .; - [...] - } - -Macro TEXT_TEXT references TEXT_MAIN which normally expands to only -".text". However, with CONFIG_LTO_CLANG, TEXT_MAIN becomes -".text .text.[0-9a-zA-Z_]*" which wrongly matches also the thunk -sections. The output layout is then different than expected. For -instance, the currently defined range [__indirect_thunk_start, -__indirect_thunk_end] becomes empty. - -Prevent the problem by using ".." as the first separator, for example, -".text..__x86.indirect_thunk". This pattern is utilized by other -explicit section names which start with one of the standard prefixes, -such as ".text" or ".data", and that need to be individually selected in -the linker script. - - [ nathan: Fix conflicts with SRSO and fold in fix issue brought up by - Andrew Cooper in post-review: - https://lore.kernel.org/20230803230323.1478869-1-andrew.cooper3@citrix.com ] - -Fixes: dc5723b02e52 ("kbuild: add support for Clang LTO") -Signed-off-by: Petr Pavlu -Signed-off-by: Peter Zijlstra (Intel) -Signed-off-by: Nathan Chancellor -Signed-off-by: Borislav Petkov (AMD) -Link: https://lore.kernel.org/r/20230711091952.27944-2-petr.pavlu@suse.com ---- - arch/x86/kernel/vmlinux.lds.S | 8 ++++---- - arch/x86/lib/retpoline.S | 8 ++++---- - tools/objtool/check.c | 2 +- - 3 files changed, 9 insertions(+), 9 deletions(-) - -diff --git a/arch/x86/kernel/vmlinux.lds.S b/arch/x86/kernel/vmlinux.lds.S -index e6939ebb6..cfee8e5a9 100644 ---- a/arch/x86/kernel/vmlinux.lds.S -+++ b/arch/x86/kernel/vmlinux.lds.S -@@ -134,7 +134,7 @@ SECTIONS - KPROBES_TEXT - ALIGN_ENTRY_TEXT_BEGIN - #ifdef CONFIG_CPU_SRSO -- *(.text.__x86.rethunk_untrain) -+ *(.text..__x86.rethunk_untrain) - #endif - - ENTRY_TEXT -@@ -145,7 +145,7 @@ SECTIONS - * definition. - */ - . = srso_untrain_ret_alias | (1 << 2) | (1 << 8) | (1 << 14) | (1 << 20); -- *(.text.__x86.rethunk_safe) -+ *(.text..__x86.rethunk_safe) - #endif - ALIGN_ENTRY_TEXT_END - SOFTIRQENTRY_TEXT -@@ -154,8 +154,8 @@ SECTIONS - - #ifdef CONFIG_RETPOLINE - __indirect_thunk_start = .; -- *(.text.__x86.indirect_thunk) -- *(.text.__x86.return_thunk) -+ *(.text..__x86.indirect_thunk) -+ *(.text..__x86.return_thunk) - __indirect_thunk_end = .; - #endif - } :text =0xcccc -diff --git a/arch/x86/lib/retpoline.S b/arch/x86/lib/retpoline.S -index 30e76fab6..629faebde 100644 ---- a/arch/x86/lib/retpoline.S -+++ b/arch/x86/lib/retpoline.S -@@ -11,7 +11,7 @@ - #include - #include - -- .section .text.__x86.indirect_thunk -+ .section .text..__x86.indirect_thunk - - .macro RETPOLINE reg - ANNOTATE_INTRA_FUNCTION_CALL -@@ -91,7 +91,7 @@ SYM_CODE_END(__x86_indirect_thunk_array) - * As a result, srso_safe_ret_alias() becomes a safe return. - */ - #ifdef CONFIG_CPU_SRSO -- .section .text.__x86.rethunk_untrain -+ .section .text..__x86.rethunk_untrain - - SYM_START(srso_untrain_ret_alias, SYM_L_GLOBAL, SYM_A_NONE) - ANNOTATE_NOENDBR -@@ -101,7 +101,7 @@ SYM_START(srso_untrain_ret_alias, SYM_L_GLOBAL, SYM_A_NONE) - SYM_FUNC_END(srso_untrain_ret_alias) - __EXPORT_THUNK(srso_untrain_ret_alias) - -- .section .text.__x86.rethunk_safe -+ .section .text..__x86.rethunk_safe - #endif - - /* Needs a definition for the __x86_return_thunk alternative below. */ -@@ -115,7 +115,7 @@ SYM_START(srso_safe_ret_alias, SYM_L_GLOBAL, SYM_A_NONE) - int3 - SYM_FUNC_END(srso_safe_ret_alias) - -- .section .text.__x86.return_thunk -+ .section .text..__x86.return_thunk - - /* - * Safety details here pertain to the AMD Zen{1,2} microarchitecture: -diff --git a/tools/objtool/check.c b/tools/objtool/check.c -index c2c350933..3bdcc7545 100644 ---- a/tools/objtool/check.c -+++ b/tools/objtool/check.c -@@ -379,7 +379,7 @@ static int decode_instructions(struct objtool_file *file) - - if (!strcmp(sec->name, ".noinstr.text") || - !strcmp(sec->name, ".entry.text") || -- !strncmp(sec->name, ".text.__x86.", 12)) -+ !strncmp(sec->name, ".text..__x86.", 13)) - sec->noinstr = true; - - for (offset = 0; offset < sec->sh.sh_size; offset += insn->len) { --- -2.41.0 - diff --git a/config-lts.sh b/config-lts.sh index fb73683..a26bcb5 100755 --- a/config-lts.sh +++ b/config-lts.sh @@ -3,7 +3,7 @@ # git apply ../0001-6.1.y-dxgkrnl.patch git apply ../0002-dxgkrnl-enable-lts-support.patch -git apply ../0003-srso-lto-lts.patch + if [ $? != 0 ]; then echo "Patch conflict!" exit 1 # so it can be catched by github action