From 0116a988997787c62cf838c207b19532e85d02ab Mon Sep 17 00:00:00 2001 From: Greg Kroah-Hartman Date: Sat, 17 May 2025 08:52:07 +0200 Subject: [PATCH] update its patch --- ...lternative-optimize-returns-patching.patch | 4 +- ...ernatives-remove-faulty-optimization.patch | 2 +- .../x86-its-fineibt-paranoid-vs-its.patch | 2 +- ...x-build-errors-when-config_modules-n.patch | 47 ++++++------------- .../x86-its-fineibt-paranoid-vs-its.patch | 8 ++-- 5 files changed, 23 insertions(+), 40 deletions(-) diff --git a/queue-6.1/x86-alternative-optimize-returns-patching.patch b/queue-6.1/x86-alternative-optimize-returns-patching.patch index e642c09cae..58bdc07511 100644 --- a/queue-6.1/x86-alternative-optimize-returns-patching.patch +++ b/queue-6.1/x86-alternative-optimize-returns-patching.patch @@ -25,7 +25,7 @@ Signed-off-by: Greg Kroah-Hartman --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c -@@ -775,13 +775,12 @@ static int patch_return(void *addr, stru +@@ -778,13 +778,12 @@ static int patch_return(void *addr, stru { int i = 0; @@ -41,7 +41,7 @@ Signed-off-by: Greg Kroah-Hartman bytes[i++] = RET_INSN_OPCODE; } -@@ -794,6 +793,14 @@ void __init_or_module noinline apply_ret +@@ -797,6 +796,14 @@ void __init_or_module noinline apply_ret { s32 *s; diff --git a/queue-6.1/x86-alternatives-remove-faulty-optimization.patch b/queue-6.1/x86-alternatives-remove-faulty-optimization.patch index b8711679fb..57fc9a4fe6 100644 --- a/queue-6.1/x86-alternatives-remove-faulty-optimization.patch +++ b/queue-6.1/x86-alternatives-remove-faulty-optimization.patch @@ -33,7 +33,7 @@ Signed-off-by: Greg Kroah-Hartman --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c -@@ -793,14 +793,6 @@ void __init_or_module noinline apply_ret +@@ -796,14 +796,6 @@ void __init_or_module noinline apply_ret { s32 *s; diff --git a/queue-6.1/x86-its-fineibt-paranoid-vs-its.patch b/queue-6.1/x86-its-fineibt-paranoid-vs-its.patch index a97e361046..85d27e11da 100644 --- a/queue-6.1/x86-its-fineibt-paranoid-vs-its.patch +++ b/queue-6.1/x86-its-fineibt-paranoid-vs-its.patch @@ -89,7 +89,7 @@ Signed-off-by: Greg Kroah-Hartman #if defined(CONFIG_RETHUNK) && defined(CONFIG_OBJTOOL) --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c -@@ -593,6 +593,14 @@ static bool cpu_wants_indirect_its_thunk +@@ -596,6 +596,14 @@ static bool cpu_wants_indirect_its_thunk /* Lower-half of the cacheline? */ return !(addr & 0x20); } diff --git a/queue-6.1/x86-its-fix-build-errors-when-config_modules-n.patch b/queue-6.1/x86-its-fix-build-errors-when-config_modules-n.patch index 069c36965d..ec0f27a0ea 100644 --- a/queue-6.1/x86-its-fix-build-errors-when-config_modules-n.patch +++ b/queue-6.1/x86-its-fix-build-errors-when-config_modules-n.patch @@ -19,52 +19,35 @@ Acked-by: Dave Hansen Tested-by: Steven Rostedt (Google) Reviewed-by: Alexandre Chartre Signed-off-by: Linus Torvalds +[ pawan: backport: Bring ITS dynamic thunk code under CONFIG_MODULES ] +Signed-off-by: Pawan Gupta Signed-off-by: Greg Kroah-Hartman --- - arch/x86/kernel/alternative.c | 6 ++++++ - 1 file changed, 6 insertions(+) + arch/x86/kernel/alternative.c | 9 +++++++++ + 1 file changed, 9 insertions(+) --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c -@@ -402,7 +402,9 @@ static int emit_indirect(int op, int reg +@@ -402,6 +402,7 @@ static int emit_indirect(int op, int reg #ifdef CONFIG_MITIGATION_ITS +#ifdef CONFIG_MODULES static struct module *its_mod; -+#endif static void *its_page; static unsigned int its_offset; +@@ -518,6 +519,14 @@ static void *its_allocate_thunk(int reg) -@@ -423,6 +425,7 @@ static void *its_init_thunk(void *thunk, return thunk; } - -+#ifdef CONFIG_MODULES - void its_init_mod(struct module *mod) - { - if (!cpu_feature_enabled(X86_FEATURE_INDIRECT_THUNK_ITS)) -@@ -462,6 +465,7 @@ void its_free_mod(struct module *mod) - } - kfree(mod->its_page_array); - } ++#else /* CONFIG_MODULES */ ++ ++static void *its_allocate_thunk(int reg) ++{ ++ return NULL; ++} ++ +#endif /* CONFIG_MODULES */ - DEFINE_FREE(its_execmem, void *, if (_T) module_memfree(_T)); - -@@ -472,6 +476,7 @@ static void *its_alloc(void) - if (!page) - return NULL; - -+#ifdef CONFIG_MODULES - if (its_mod) { - void *tmp = krealloc(its_mod->its_page_array, - (its_mod->its_num_pages+1) * sizeof(void *), -@@ -482,6 +487,7 @@ static void *its_alloc(void) - its_mod->its_page_array = tmp; - its_mod->its_page_array[its_mod->its_num_pages++] = page; - } -+#endif /* CONFIG_MODULES */ - - return no_free_ptr(page); - } + static int __emit_trampoline(void *addr, struct insn *insn, u8 *bytes, + void *call_dest, void *jmp_dest) diff --git a/queue-6.6/x86-its-fineibt-paranoid-vs-its.patch b/queue-6.6/x86-its-fineibt-paranoid-vs-its.patch index 3b5043d237..7e08f2b26e 100644 --- a/queue-6.6/x86-its-fineibt-paranoid-vs-its.patch +++ b/queue-6.6/x86-its-fineibt-paranoid-vs-its.patch @@ -89,9 +89,9 @@ Signed-off-by: Greg Kroah-Hartman #if defined(CONFIG_RETHUNK) && defined(CONFIG_OBJTOOL) --- a/arch/x86/kernel/alternative.c +++ b/arch/x86/kernel/alternative.c -@@ -250,6 +250,13 @@ static void *its_allocate_thunk(int reg) - return thunk; - } +@@ -1449,6 +1449,13 @@ static void __apply_fineibt(s32 *start_r + static void poison_cfi(void *addr) { } + #endif +u8 *its_static_thunk(int reg) +{ @@ -102,7 +102,7 @@ Signed-off-by: Greg Kroah-Hartman + #endif - /* + void apply_fineibt(s32 *start_retpoline, s32 *end_retpoline, --- a/arch/x86/net/bpf_jit_comp.c +++ b/arch/x86/net/bpf_jit_comp.c @@ -475,7 +475,7 @@ static void emit_indirect_jump(u8 **ppro -- 2.47.3