[PATCH v2] random: remove CONFIG_ARCH_RANDOM
Greg Kroah-Hartman
gregkh at linuxfoundation.org
Tue Jul 5 23:41:13 PDT 2022
On Wed, Jul 06, 2022 at 02:32:25AM +0200, Jason A. Donenfeld wrote:
> When RDRAND was introduced, there was much discussion on whether it
> should be trusted and how the kernel should handle that. Initially, two
> mechanisms cropped up, CONFIG_ARCH_RANDOM, a compile time switch, and
> "nordrand", a boot-time switch.
>
> Later the thinking evolved. With a properly designed RNG, using RDRAND
> values alone won't harm anything, even if the outputs are malicious.
> Rather, the issue is whether those values are being *trusted* to be good
> or not. And so a new set of options were introduced as the real
> ones that people use -- CONFIG_RANDOM_TRUST_CPU and "random.trust_cpu".
> With these options, RDRAND is used, but it's not always credited. So in
> the worst case, it does nothing, and in the best case, maybe it helps.
>
> Along the way, CONFIG_ARCH_RANDOM's meaning got sort of pulled into the
> center and became something certain platforms force-select.
>
> The old options don't really help with much, and it's a bit odd to have
> special handling for these instructions when the kernel can deal fine
> with the existence or untrusted existence or broken existence or
> non-existence of that CPU capability.
>
> So this commit simplifies things down to the two options that are
> actually used, and removes the confusing old ones that aren't used or
> useful. It leaves "nordrand" for now, as the removal of that will take a
> different route.
>
> Cc: Catalin Marinas <catalin.marinas at arm.com>
> Cc: Will Deacon <will at kernel.org>
> Cc: Michael Ellerman <mpe at ellerman.id.au>
> Cc: Heiko Carstens <hca at linux.ibm.com>
> Cc: Alexander Gordeev <agordeev at linux.ibm.com>
> Cc: Thomas Gleixner <tglx at linutronix.de>
> Cc: H. Peter Anvin <hpa at zytor.com>
> Cc: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
> Cc: Arnd Bergmann <arnd at arndb.de>
> Signed-off-by: Jason A. Donenfeld <Jason at zx2c4.com>
> ---
> arch/arm64/Kconfig | 8 --------
> arch/arm64/include/asm/archrandom.h | 10 ----------
> arch/arm64/kernel/cpufeature.c | 2 --
> arch/powerpc/Kconfig | 3 ---
> arch/powerpc/include/asm/archrandom.h | 3 ---
> arch/powerpc/include/asm/machdep.h | 2 --
> arch/powerpc/platforms/microwatt/Kconfig | 1 -
> arch/powerpc/platforms/powernv/Kconfig | 1 -
> arch/powerpc/platforms/pseries/Kconfig | 1 -
> arch/s390/Kconfig | 15 ---------------
> arch/s390/configs/zfcpdump_defconfig | 1 -
> arch/s390/crypto/Makefile | 2 +-
> arch/s390/include/asm/archrandom.h | 3 ---
> arch/x86/Kconfig | 9 ---------
> arch/x86/include/asm/archrandom.h | 10 +---------
> arch/x86/kernel/cpu/rdrand.c | 2 --
> drivers/char/Kconfig | 1 -
> drivers/char/hw_random/s390-trng.c | 9 ---------
> include/linux/random.h | 9 +--------
> .../selftests/wireguard/qemu/kernel.config | 1 -
> 20 files changed, 3 insertions(+), 90 deletions(-)
Acked-by: Greg Kroah-Hartman <gregkh at linuxfoundation.org>
More information about the linux-arm-kernel
mailing list