[PATCH 0/2] x86/rdrand: implement sanity check for RDSEED

From: Mikhail Paulyshka
Date: Wed Mar 12 2025 - 08:40:33 EST


On the AMD Cyan Skillfish (Family 0x17 Model 0x47 Stepping 0x0), which
is a Zen2-based APU found on the AMD BC-250 board, there is a situation
where RDRAND works fine, but RDSEED generates FF. This leads to some
applications that use RDSEED to generate random numbers (such as
Qt and KDE) into a nearly unusable state.

Although AMD has fixed the Zen2 RDRAND issues in 2019 with a microcode update,
no such update has been released for the Family 0x17 Model 0x47 core.

This patchset introduces an separate sanity check for RDSEED and hides the
RDSEED and RDRAND from CPUID on AMD platforms in the case of a malfunction.

Mikhail Paulyshka (2):
x86/rdrand: implement sanity check for RDSEED
x86/rdrand: hide RDRAND and RDSEED from CPUID in case of a malfunction

arch/x86/include/asm/archrandom.h | 1 +
arch/x86/include/asm/msr-index.h | 1 +
arch/x86/kernel/cpu/common.c | 1 +
arch/x86/kernel/cpu/rdrand.c | 48 ++++++++++++++++++++++++--
tools/arch/x86/include/asm/msr-index.h | 1 +
5 files changed, 49 insertions(+), 3 deletions(-)

--
2.48.1