From: Borislav Petkov <bp@suse.de>
To: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Pu Wen <puwen@hygon.cn>, Thomas Gleixner <tglx@linutronix.de>,
Tom Lendacky <thomas.lendacky@amd.com>,
Linux List Kernel Mailing <linux-kernel@vger.kernel.org>,
the arch/x86 maintainers <x86@kernel.org>
Subject: Re: [GIT pull] x86/urgent for 5.3-rc5
Date: Tue, 27 Aug 2019 19:39:55 +0200 [thread overview]
Message-ID: <20190827173955.GI29752@zn.tnic> (raw)
In-Reply-To: <CAHk-=wj_E58JskechbJyWwpzu5rwKFHEABr4dCZjS+JBvv67Uw@mail.gmail.com>
On Tue, Aug 27, 2019 at 09:55:08AM -0700, Linus Torvalds wrote:
> Side note: I'd suggest
>
> if (WARN_ON_ONCE(!changed))
> pr_emerg("RDRAND gives funky smelling output, might
> consider not using it by booting with \"nordrand\"");
>
> instead.
Done, final result with a proper commit message below.
Do you want it this weekend, after some smoke testing on boxes or should
I leave it a couple of weeks in tip until the merge window opens, and
then queue it for 5.4 for longer exposure in linux-next?
Thx.
---
From: Borislav Petkov <bp@suse.de>
Date: Sun, 25 Aug 2019 22:50:18 +0200
Subject: [PATCH] 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 | 22 +++++++++++++++++++++-
1 file changed, 21 insertions(+), 1 deletion(-)
diff --git a/arch/x86/kernel/cpu/rdrand.c b/arch/x86/kernel/cpu/rdrand.c
index 5c900f9527ff..c4be62058dd9 100644
--- a/arch/x86/kernel/cpu/rdrand.c
+++ b/arch/x86/kernel/cpu/rdrand.c
@@ -29,7 +29,8 @@ __setup("nordrand", x86_rdrand_setup);
#ifdef CONFIG_ARCH_RANDOM
void x86_init_rdrand(struct cpuinfo_x86 *c)
{
- unsigned long tmp;
+ unsigned int changed = 0;
+ unsigned long tmp, prev;
int i;
if (!cpu_has(c, X86_FEATURE_RDRAND))
@@ -42,5 +43,24 @@ void x86_init_rdrand(struct cpuinfo_x86 *c)
return;
}
}
+
+ /*
+ * Stupid sanity-check whether RDRAND does *actually* generate
+ * some at least random-looking data.
+ */
+ prev = tmp;
+ for (i = 0; i < SANITY_CHECK_LOOPS; i++) {
+ if (rdrand_long(&tmp)) {
+ if (prev != tmp)
+ changed++;
+
+ prev = tmp;
+ }
+ }
+
+ if (WARN_ON_ONCE(!changed))
+ pr_emerg(
+"RDRAND gives funky smelling output, might consider not using it by booting with \"nordrand\"");
+
}
#endif
--
2.21.0
SUSE Linux GmbH, GF: Felix Imendörffer, Mary Higgins, Sri Rasiah, HRB 21284 (AG Nürnberg)
--
next prev parent reply other threads:[~2019-08-27 17:40 UTC|newest]
Thread overview: 30+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-08-25 9:43 [GIT pull] irq/urgent for 5.3-rc5 Thomas Gleixner
2019-08-25 9:43 ` [GIT pull] perf/urgent " Thomas Gleixner
2019-08-25 17:40 ` pr-tracker-bot
2019-08-25 9:43 ` [GIT pull] x86/urgent " Thomas Gleixner
2019-08-25 17:18 ` Linus Torvalds
2019-08-25 17:30 ` Borislav Petkov
2019-08-25 17:37 ` Linus Torvalds
2019-08-25 18:29 ` Borislav Petkov
2019-08-25 18:38 ` Linus Torvalds
2019-08-25 19:32 ` Borislav Petkov
2019-08-25 19:35 ` Linus Torvalds
2019-08-25 19:49 ` Borislav Petkov
2019-08-25 19:59 ` Linus Torvalds
2019-08-25 20:17 ` Borislav Petkov
2019-08-26 12:53 ` Borislav Petkov
2019-08-27 16:55 ` Linus Torvalds
2019-08-27 17:39 ` Borislav Petkov [this message]
2019-08-27 17:46 ` Linus Torvalds
2019-08-27 17:59 ` Borislav Petkov
2019-08-28 15:20 ` David Sterba
2019-08-28 15:53 ` David Sterba
2019-10-02 19:09 ` [tip: x86/cpu] x86/rdrand: Sanity-check RDRAND output tip-bot2 for Borislav Petkov
2019-08-25 17:40 ` [GIT pull] x86/urgent for 5.3-rc5 pr-tracker-bot
2019-08-25 9:43 ` [GIT pull] timers/urgent " Thomas Gleixner
2019-08-25 17:40 ` pr-tracker-bot
2019-08-25 9:43 ` [GIT pull] sched/urgent " Thomas Gleixner
2019-08-25 17:40 ` pr-tracker-bot
2019-08-25 17:40 ` [GIT pull] irq/urgent " pr-tracker-bot
-- strict thread matches above, loose matches on Subject: below --
2019-08-18 11:34 [GIT pull] efi/urgent " Thomas Gleixner
2019-08-18 11:34 ` [GIT pull] x86/urgent " Thomas Gleixner
2019-08-18 16:55 ` pr-tracker-bot
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=20190827173955.GI29752@zn.tnic \
--to=bp@suse.de \
--cc=linux-kernel@vger.kernel.org \
--cc=puwen@hygon.cn \
--cc=tglx@linutronix.de \
--cc=thomas.lendacky@amd.com \
--cc=torvalds@linux-foundation.org \
--cc=x86@kernel.org \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox