powerpc/powernv: wire up rng during setup_arch
authorJason A. Donenfeld <Jason@zx2c4.com>
Tue, 21 Jun 2022 14:08:49 +0000 (16:08 +0200)
committerMichael Ellerman <mpe@ellerman.id.au>
Wed, 22 Jun 2022 09:47:22 +0000 (19:47 +1000)
commitf3eac426657d985b97c92fa5f7ae1d43f04721f3
tree0bdf301d346ea35613ca3798b1ea418991bfd85a
parentca5dabcff1df6bc8c413922b5fa63cc602858803
powerpc/powernv: wire up rng during setup_arch

The platform's RNG must be available before random_init() in order to be
useful for initial seeding, which in turn means that it needs to be
called from setup_arch(), rather than from an init call.

Complicating things, however, is that POWER8 systems need some per-cpu
state and kmalloc, which isn't available at this stage. So we split
things up into an early phase and a later opportunistic phase. This
commit also removes some noisy log messages that don't add much.

Fixes: a4da0d50b2a0 ("powerpc: Implement arch_get_random_long/int() for powernv")
Cc: stable@vger.kernel.org # v3.13+
Signed-off-by: Jason A. Donenfeld <Jason@zx2c4.com>
Reviewed-by: Christophe Leroy <christophe.leroy@csgroup.eu>
[mpe: Add of_node_put(), use pnv naming, minor change log editing]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20220621140849.127227-1-Jason@zx2c4.com
arch/powerpc/platforms/powernv/powernv.h
arch/powerpc/platforms/powernv/rng.c
arch/powerpc/platforms/powernv/setup.c