]> git.ipfire.org Git - thirdparty/kernel/stable-queue.git/commitdiff
update its patch
authorGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 17 May 2025 06:52:07 +0000 (08:52 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 17 May 2025 06:52:07 +0000 (08:52 +0200)
queue-6.1/x86-alternative-optimize-returns-patching.patch
queue-6.1/x86-alternatives-remove-faulty-optimization.patch
queue-6.1/x86-its-fineibt-paranoid-vs-its.patch
queue-6.1/x86-its-fix-build-errors-when-config_modules-n.patch
queue-6.6/x86-its-fineibt-paranoid-vs-its.patch

index e642c09caece54bcdd402428e23446ad1368ab76..58bdc075118e9e690a4170b76e0bfcece0e3337a 100644 (file)
@@ -25,7 +25,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 --- 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 <gregkh@linuxfoundation.org>
                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;
  
index b8711679fbe5b43f36fccf90f6de4438faf6c07e..57fc9a4fe631ecb04e5824c923bb6b10f081f12f 100644 (file)
@@ -33,7 +33,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 
 --- 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;
  
index a97e361046df1395a57b1ba7508090abebbe89d2..85d27e11dad8f27a5d664e5871d2056155c7117c 100644 (file)
@@ -89,7 +89,7 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  #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);
  }
index 069c36965d26b2adddeaf98df4f74662ad52aa5b..ec0f27a0ead2d5456773a39a9b4afeae7e069780 100644 (file)
@@ -19,52 +19,35 @@ Acked-by: Dave Hansen <dave.hansen@intel.com>
 Tested-by: Steven Rostedt (Google) <rostedt@goodmis.org>
 Reviewed-by: Alexandre Chartre <alexandre.chartre@oracle.com>
 Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
+[ pawan: backport: Bring ITS dynamic thunk code under CONFIG_MODULES ]
+Signed-off-by: Pawan Gupta <pawan.kumar.gupta@linux.intel.com>
 Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
 ---
- arch/x86/kernel/alternative.c |    ++++++
- 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)
index 3b5043d237bee05b8fa8af66c97d982602c5da22..7e08f2b26e59f38bd07e95d6240ceedc1fdd5bfb 100644 (file)
@@ -89,9 +89,9 @@ Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
  #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 <gregkh@linuxfoundation.org>
 +
  #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