[PATCH] init: call time_init() before rand_initialize()

From: Jason A. Donenfeld
Date: Wed May 04 2022 - 20:31:26 EST


Currently time_init() is called before rand_initialize(), but
rand_initialize() makes use of the timer on various platforms, and
sometimes this timer needs to be initialized by time_init() first. In
order to not return zero, reverse the order of these two calls. The
block doing random initialization was right before time_init() before,
so changing the order shouldn't have any complicated effects.

Cc: Stafford Horne <shorne@xxxxxxxxx>
Cc: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx>
Signed-off-by: Jason A. Donenfeld <Jason@xxxxxxxxx>
---
Andrew - this file has no formal maintainer, but you've signed the most
commits, so I'm CC'ing you. This has some interactions with my
random.git tree, so unless there are objections, I'll queue it up there.
-Jason

init/main.c | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/init/main.c b/init/main.c
index 98182c3c2c4b..e37ec99cf56d 100644
--- a/init/main.c
+++ b/init/main.c
@@ -1035,6 +1035,7 @@ asmlinkage __visible void __init __no_sanitize_address start_kernel(void)
softirq_init();
timekeeping_init();
kfence_init();
+ time_init();

/*
* For best initial stack canary entropy, prepare it after:
@@ -1049,7 +1050,6 @@ asmlinkage __visible void __init __no_sanitize_address start_kernel(void)
add_device_randomness(command_line, strlen(command_line));
boot_init_stack_canary();

- time_init();
perf_event_init();
profile_init();
call_function_init();
--
2.35.1