Linux kernel mirror (for testing) git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git
kernel os linux

m68k: Initialize jump labels early during setup_arch()

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>

authored by

Jean-Michel Hautbois and committed by
Geert Uytterhoeven
6070970d 47bc8744

+5 -1
+5 -1
arch/m68k/kernel/setup_mm.c
··· 249 249 process_uboot_commandline(&m68k_command_line[0], CL_SIZE); 250 250 *cmdline_p = m68k_command_line; 251 251 memcpy(boot_command_line, *cmdline_p, CL_SIZE); 252 - 252 + /* 253 + * Initialise the static keys early as they may be enabled by the 254 + * cpufeature code and early parameters. 255 + */ 256 + jump_label_init(); 253 257 parse_early_param(); 254 258 255 259 switch (m68k_machtype) {