x86/rdrand: Sanity-check RDRAND output
authorBorislav Petkov <bp@suse.de>
Sun, 25 Aug 2019 20:50:18 +0000 (22:50 +0200)
committerBorislav Petkov <bp@suse.de>
Tue, 1 Oct 2019 17:55:32 +0000 (19:55 +0200)
commit7879fc4bdc7506d37bd67b6fc29442c53c06dfda
tree6877dbd8fcb96773c98ead06bd2b1bdc51b5c388
parent54ecb8f7028c5eb3d740bb82b0f1d90f2df63c5c
x86/rdrand: Sanity-check RDRAND output

It turned out recently that on certain AMD F15h and F16h machines, due
to the BIOS dropping the ball after resume, yet again, RDRAND would not
function anymore:

  c49a0a80137c ("x86/CPU/AMD: Clear RDRAND CPUID bit on AMD family 15h/16h")

Add a silly test to the CPU bringup path, to sanity-check the random
data RDRAND returns and scream as loudly as possible if that returned
random data doesn't change.

Suggested-by: Linus Torvalds <torvalds@linux-foundation.org>
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Pu Wen <puwen@hygon.cn>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Tom Lendacky <thomas.lendacky@amd.com>
Cc: x86-ml <x86@kernel.org>
Link: https://lkml.kernel.org/r/CAHk-=wjWPDauemCmLTKbdMYFB0UveMszZpcrwoUkJRRWKrqaTw@mail.gmail.com
arch/x86/kernel/cpu/rdrand.c