* [PATCH] random: drop check for static_key_initialized
@ 2025-11-10 11:56 Thomas Weißschuh
2025-11-11 0:31 ` Jason A. Donenfeld
0 siblings, 1 reply; 2+ messages in thread
From: Thomas Weißschuh @ 2025-11-10 11:56 UTC (permalink / raw)
To: Theodore Ts'o, Jason A. Donenfeld; +Cc: linux-kernel, Thomas Weißschuh
Commit 77b644c39d6a ("init/main.c: Initialize early LSMs after arch code,
static keys and calls.") changed the initialization sequence to call
jump_label_init() before random_init_early(). This condition can therefore
never be false.
Remove the now unnecessary check.
Signed-off-by: Thomas Weißschuh <thomas.weissschuh@linutronix.de>
---
drivers/char/random.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/drivers/char/random.c b/drivers/char/random.c
index b8b24b6ed3fe436c8102968392278d5cb5544f06..1ab7f169780aee3537ecfde52f43daffc4dfc95b 100644
--- a/drivers/char/random.c
+++ b/drivers/char/random.c
@@ -741,7 +741,7 @@ static void __cold _credit_init_bits(size_t bits)
if (orig < POOL_READY_BITS && new >= POOL_READY_BITS) {
crng_reseed(NULL); /* Sets crng_init to CRNG_READY under base_crng.lock. */
- if (static_key_initialized && system_unbound_wq)
+ if (system_unbound_wq)
queue_work(system_unbound_wq, &set_ready);
atomic_notifier_call_chain(&random_ready_notifier, 0, NULL);
#ifdef CONFIG_VDSO_GETRANDOM
---
base-commit: 3a8660878839faadb4f1a6dd72c3179c1df56787
change-id: 20251110-random-static_key_initialized-313a87bb59dc
Best regards,
--
Thomas Weißschuh <thomas.weissschuh@linutronix.de>
^ permalink raw reply [flat|nested] 2+ messages in thread
* Re: [PATCH] random: drop check for static_key_initialized
2025-11-10 11:56 [PATCH] random: drop check for static_key_initialized Thomas Weißschuh
@ 2025-11-11 0:31 ` Jason A. Donenfeld
0 siblings, 0 replies; 2+ messages in thread
From: Jason A. Donenfeld @ 2025-11-11 0:31 UTC (permalink / raw)
To: Thomas Weißschuh; +Cc: Theodore Ts'o, linux-kernel
On Mon, Nov 10, 2025 at 12:56:34PM +0100, Thomas Weißschuh wrote:
> Commit 77b644c39d6a ("init/main.c: Initialize early LSMs after arch code,
> static keys and calls.") changed the initialization sequence to call
> jump_label_init() before random_init_early().
No it didnt:
pr_notice("%s", linux_banner);
- early_security_init();
setup_arch(&command_line);
+ /* Static keys and static calls are needed by LSMs */
+ jump_label_init();
+ static_call_init();
+ early_security_init();
setup_boot_config();
setup_command_line(command_line);
setup_nr_cpu_ids();
setup_per_cpu_areas();
smp_prepare_boot_cpu(); /* arch-specific boot-cpu hooks */
early_numa_node_init();
boot_cpu_hotplug_init();
pr_notice("Kernel command line: %s\n", saved_command_line);
/* parameters may set static keys */
- jump_label_init();
parse_early_param();
after_dashes = parse_args("Booting kernel",
static_command_line, __start___param,
__stop___param - __start___param,
-1, -1, NULL, &unknown_bootoption);
print_unknown_bootoptions();
if (!IS_ERR_OR_NULL(after_dashes))
parse_args("Setting init args", after_dashes, NULL, 0, -1, -1,
NULL, set_init_arg);
if (extra_init_args)
parse_args("Setting extra init args", extra_init_args,
NULL, 0, -1, -1, NULL, set_init_arg);
/* Architectural and non-timekeeping rng init, before allocator init */
random_init_early(command_line);
jump_label_init() was called before random_init_early() before
77b644c39d6a. And workqueue_init_early() is much further down, after
jump_label_init().
As far as I can tell, jump labels have always been initialized before
workqueues. So your patch is right, but the explanation is not.
What really happened is that e871abcda3b6 ("random: handle creditable
entropy from atomic process context") moved things to a workqueue, but
added the workqueue condition without removing the
static_key_initialized one.
Anyway, I fixed this up and committed it here:
https://git.kernel.org/pub/scm/linux/kernel/git/crng/random.git/commit/?id=2db833312d7e6ae22111a6fd3e733b2a14986a29
Please submit patches against random.git in the future.
Regards,
Jason
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2025-11-11 0:31 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2025-11-10 11:56 [PATCH] random: drop check for static_key_initialized Thomas Weißschuh
2025-11-11 0:31 ` Jason A. Donenfeld
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox
all inboxes | Powered by JetHome®