[PATCH 0/4] random/arm64: enable RANDOM_TRUST_CPU for arm64

From: Mark Rutland
Date: Mon Feb 10 2020 - 08:00:45 EST


On arm64 systems some CPUs may have RNG instructions while others do
not, and consequently we cannot generally enable the use of RNG
instructions until all CPUs have been booted (as otherwise we'd have
problems with preemption, etc). This prevents us from seeding the
primary CRNG using the RNG, as this occurs before secondary CPUs are
onlined.

These patches rework the core CRNG intialization code so that the arch
code can (optionally) distinguish boot-time usage from runtime usage of
the arch_get_random_*() functions. This allows arm64 to use the boot
CPU's RNG to seed the primary CRNG, regardless of whether secondary CPUs
support the RNG instructions. Other architectures should see no
functional change as a result of this patches.

Thanks,
Mark.

Mark Rutland (3):
random: split primary/secondary crng init paths
random: add arch_get_random_*long_early()
arm64: add credited/trusted RNG support

Richard Henderson (1):
random: Make RANDOM_TRUST_CPU depend on ARCH_RANDOM

arch/arm64/include/asm/archrandom.h | 14 ++++++++++
drivers/char/Kconfig | 2 +-
drivers/char/random.c | 52 ++++++++++++++++++++++++++++---------
include/linux/random.h | 22 ++++++++++++++++
4 files changed, 77 insertions(+), 13 deletions(-)

--
2.11.0