Merge remote-tracking branch 'stable/linux-5.15.y' into rpi-5.15.y
[platform/kernel/linux-rpi.git] / init / main.c
index b340d99..cf79b5a 100644 (file)
@@ -1041,21 +1041,18 @@ 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:
         * - setup_arch() for any UEFI RNG entropy and boot cmdline access
-        * - timekeeping_init() for ktime entropy used in rand_initialize()
-        * - rand_initialize() to get any arch-specific entropy like RDRAND
-        * - add_latent_entropy() to get any latent entropy
-        * - adding command line entropy
+        * - timekeeping_init() for ktime entropy used in random_init()
+        * - time_init() for making random_get_entropy() work on some platforms
+        * - random_init() to initialize the RNG from from early entropy sources
         */
-       rand_initialize();
-       add_latent_entropy();
-       add_device_randomness(command_line, strlen(command_line));
+       random_init(command_line);
        boot_init_stack_canary();
 
-       time_init();
        perf_event_init();
        profile_init();
        call_function_init();
@@ -1198,7 +1195,7 @@ static int __init initcall_blacklist(char *str)
                }
        } while (str_entry);
 
-       return 0;
+       return 1;
 }
 
 static bool __init_or_module initcall_blacklisted(initcall_t fn)
@@ -1460,7 +1457,9 @@ static noinline void __init kernel_init_freeable(void);
 bool rodata_enabled __ro_after_init = true;
 static int __init set_debug_rodata(char *str)
 {
-       return strtobool(str, &rodata_enabled);
+       if (strtobool(str, &rodata_enabled))
+               pr_warn("Invalid option string for rodata: '%s'\n", str);
+       return 1;
 }
 __setup("rodata=", set_debug_rodata);
 #endif