Re: [PATCH] random: Move rand_initialize() earlier

From: Theodore Ts'o
Date: Tue Apr 16 2019 - 12:11:15 EST


On Mon, Apr 15, 2019 at 10:46:34PM -0500, Kees Cook wrote:
> On Fri, Oct 12, 2018 at 9:45 AM Kees Cook <keescook@xxxxxxxxxxxx> wrote:
> >
> > On Fri, Oct 12, 2018 at 7:29 AM, Theodore Y. Ts'o <tytso@xxxxxxx> wrote:
> > > On Thu, Oct 11, 2018 at 03:54:21PM -0700, Kees Cook wrote:
> > >> Right now rand_initialize() is run as an early_initcall(), but it only
> > >> depends on timekeeping_init() (for mixing ktime_get_real() into the
> > >> pools). However, the call to boot_init_stack_canary() for stack canary
> > >> initialization runs earlier, which triggers a warning at boot:
> > >>
> > >> random: get_random_bytes called from start_kernel+0x357/0x548 with crng_init=0
> > >>
> > >> Instead, this moves rand_initialize() to after timekeeping_init(), and moves
> > >> canary initialization here as well.
> > >>
> > >> Note that this warning may still remain for machines that do not have
> > >> UEFI RNG support (which initializes the RNG pools durting setup_arch()),
> > >> or for x86 machines without RDRAND (or booting without "random.trust=on"
> > >> or CONFIG_RANDOM_TRUST_CPU=y).
> > >>
> > >> Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
>
> Hi Ted! Did this get lost? This has come up again, and I don't see it
> having landed anywhere yet. Can you take this?

Yeah, sorry, it got lost; my bad. I'll take it and push it out at the
next merge window.

- Ted