random: handle latent entropy and command line from random_init()
authorJason A. Donenfeld <Jason@zx2c4.com>
Thu, 5 May 2022 00:20:22 +0000 (02:20 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sat, 25 Jun 2022 09:46:40 +0000 (11:46 +0200)
commitb16b1b66b7d47e09813a033ce52e954afeb505dd
treefbe72f0c9a50339328a0dfbfd56d9b7643286efe
parent1bed234f23cdcbcc5dba4e3f3db8c0273eb393c2
random: handle latent entropy and command line from random_init()

commit 2f14062bb14b0fcfcc21e6dc7d5b5c0d25966164 upstream.

Currently, start_kernel() adds latent entropy and the command line to
the entropy bool *after* the RNG has been initialized, deferring when
it's actually used by things like stack canaries until the next time
the pool is seeded. This surely is not intended.

Rather than splitting up which entropy gets added where and when between
start_kernel() and random_init(), just do everything in random_init(),
which should eliminate these kinds of bugs in the future.

While we're at it, rename the awkwardly titled "rand_initialize()" to
the more standard "random_init()" nomenclature.

Reviewed-by: Dominik Brodowski <linux@dominikbrodowski.net>
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/char/random.c
include/linux/random.h
init/main.c