]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
x86/init: Initialize signal frame size late
authorThomas Gleixner <tglx@linutronix.de>
Tue, 1 Aug 2023 16:58:30 +0000 (18:58 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Tue, 8 Aug 2023 17:58:31 +0000 (19:58 +0200)
commit 54d9a91a3d6713d1332e93be13b4eaf0fa54349d upstream

No point in doing this during really early boot. Move it to an early
initcall so that it is set up before possible user mode helpers are started
during device initialization.

Signed-off-by: Thomas Gleixner <tglx@linutronix.de>
Link: https://lore.kernel.org/r/20230613224545.727330699@linutronix.de
Signed-off-by: Daniel Sneddon <daniel.sneddon@linux.intel.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/x86/include/asm/sigframe.h
arch/x86/kernel/cpu/common.c
arch/x86/kernel/signal.c

index 5b1ed650b12489f328c38645cebd66f446603532..84eab27248754233da3d75f9b27cecd8f0fb89ff 100644 (file)
@@ -85,6 +85,4 @@ struct rt_sigframe_x32 {
 
 #endif /* CONFIG_X86_64 */
 
-void __init init_sigframe_size(void);
-
 #endif /* _ASM_X86_SIGFRAME_H */
index 6f4016f5f4f37172f15b99d5df43db5ccbd21a7e..c51716bd0c9f6845297f65e5452dd9981dbdfdc1 100644 (file)
@@ -63,7 +63,6 @@
 #include <asm/cpu_device_id.h>
 #include <asm/uv/uv.h>
 #include <asm/set_memory.h>
-#include <asm/sigframe.h>
 
 #include "cpu.h"
 
@@ -1428,8 +1427,6 @@ static void __init early_identify_cpu(struct cpuinfo_x86 *c)
 
        fpu__init_system(c);
 
-       init_sigframe_size();
-
 #ifdef CONFIG_X86_32
        /*
         * Regardless of whether PCID is enumerated, the SDM says
index f4d21e47008355a11aa81b02b5a94eb2b44c20a4..bf10340a9b71dde876d1b0b8f693e40220062d3b 100644 (file)
@@ -722,7 +722,7 @@ badframe:
 /* max_frame_size tells userspace the worst case signal stack size. */
 static unsigned long __ro_after_init max_frame_size;
 
-void __init init_sigframe_size(void)
+static int __init init_sigframe_size(void)
 {
        max_frame_size = MAX_FRAME_SIGINFO_UCTXT_SIZE + MAX_FRAME_PADDING;
 
@@ -732,7 +732,9 @@ void __init init_sigframe_size(void)
        max_frame_size = round_up(max_frame_size, FRAME_ALIGNMENT);
 
        pr_info("max sigframe size: %lu\n", max_frame_size);
+       return 0;
 }
+early_initcall(init_sigframe_size);
 
 unsigned long get_sigframe_size(void)
 {