Re: [PATCH 1/5] x86/mce/inject: Check if a bank is unpopulated before error simulation

From: Smita Koralahalli Channabasappa
Date: Mon Sep 27 2021 - 17:56:43 EST


On 9/27/21 3:15 PM, Borislav Petkov wrote:

On Mon, Sep 27, 2021 at 02:51:56PM -0500, Smita Koralahalli Channabasappa wrote:
Can you please elaborate on this? I'm not sure if I understood this
right. Should I read the ipid file to verify that the user has input
proper ipid? If ipid file reads zero then do rdmsrl_on_cpu?
No, on a write to the ipid file you should do that checking and write if
the bank is populated or fail the write otherwise. And you should put
all that code in inj_bank_set() - that's why I say "on a write to the
ipid file".

And instead of boot_cpu_has() you should use cpu_feature_enabled().

Makes sense?

Yes, this makes sense to me now. But you meant to say inj_ipid_set()
instead of inj_bank_set()..?

Something like this:

-MCE_INJECT_SET(ipid)

+static int inj_ipid_set(void *data, u64 val)
+{
+ struct mce *m = (struct mce*)data;

+ if cpu_feature_enabled(X86_FEATURE_SMCA)) {

+ rdmsrl_on_cpu(..
..
..
+ m->ipid = val;
+ ..
+}

Thanks,