]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
m68k: Initialize jump labels early during setup_arch()
authorJean-Michel Hautbois <jeanmichel.hautbois@yoseli.org>
Wed, 16 Oct 2024 16:18:55 +0000 (18:18 +0200)
committerGeert Uytterhoeven <geert@linux-m68k.org>
Wed, 6 Nov 2024 14:10:14 +0000 (15:10 +0100)
When using static keys early, e.g. by specifying "thread_backlog_napi"
on the kernel command line:

    WARNING: CPU: 0 PID: 0 at include/linux/jump_label.h:322 setup_backlog_napi_threads+0x40/0xa0
    static_key_enable(): static key '0x5ceec0' used before call to jump_label_init()

The function jump_label_init() should be called from setup_arch() very
early for proper functioning of jump label support.

Signed-off-by: Jean-Michel Hautbois <jeanmichel.hautbois@yoseli.org>
Reviewed-by: Geert Uytterhoeven <geert@linux-m68k.org>
Link: https://lore.kernel.org/20241016-fix-jump-label-v1-1-eb74c5f68405@yoseli.org
[geert: Add reproducer]
Signed-off-by: Geert Uytterhoeven <geert@linux-m68k.org>
arch/m68k/kernel/setup_mm.c

index 10310b04f77d8d79bec858c6989c2cf21d0af557..15c1a595a1de0bef7e6565b7a6e02d773c23bb8c 100644 (file)
@@ -249,7 +249,11 @@ void __init setup_arch(char **cmdline_p)
        process_uboot_commandline(&m68k_command_line[0], CL_SIZE);
        *cmdline_p = m68k_command_line;
        memcpy(boot_command_line, *cmdline_p, CL_SIZE);
-
+       /*
+        * Initialise the static keys early as they may be enabled by the
+        * cpufeature code and early parameters.
+        */
+       jump_label_init();
        parse_early_param();
 
        switch (m68k_machtype) {