From: "Chang S. Bae" <chang.seok.bae@intel.com>
To: Borislav Petkov <bp@alien8.de>
Cc: <linux-kernel@vger.kernel.org>, <x86@kernel.org>,
<tglx@kernel.org>, <mingo@redhat.com>,
<dave.hansen@linux.intel.com>, <hpa@zytor.com>,
<andrew.cooper3@citrix.com>, <arjan.van.de.ven@intel.com>,
<stable@vger.kernel.org>
Subject: Re: [PATCH 1/8] x86/microcode/intel: Reject problematic loading on GNR systems
Date: Thu, 3 Sep 2026 14:04:28 -0700 [thread overview]
Message-ID: <96ca6bc4-a03a-4e4e-b82c-f5202cdf21ac@intel.com> (raw)
In-Reply-To: <20260903015154.GMapjSujbkKGzyihVB@fat_crate.local>
On 9/2/2026 6:51 PM, Borislav Petkov wrote:
> On Tue, Sep 01, 2026 at 11:16:26PM +0000, Chang S. Bae wrote:
>> +static bool is_loading_denied(struct cpu_signature *sig, u32 rev)
>
> This naming is not better, sorry.
>
> Is loading denied means the loading in general is denied because <raisin> or
> are you trying to check whether this particular revision should not be loaded?
>
> I think it is latter.
>
> So you wanna say
>
> revision_blacklisted()
>
> or so.
Maybe revision_banned()?
>
>> +{
>> + u32 vfm = IFM(x86_family(sig->sig), x86_model(sig->sig));
>> +
>> + /*
>> + * Revision 0x1000405 contains prerequisite changes for subsequent
>> + * microcode updates on Granite Rapids systems. Updates directly from
>> + * an older revision to this or a newer one can result in #MC (GNR98).
>> + *
>> + * This dependency can be indicated from the minimum revision field.
>> + * However, revision 0x1000423 has an incorrect minimum revision in its
>
> So you lost me here: 0x1000423 is not tested anywhere - just mentioned here.
>
> So what I understand is: usually, dependencies like that can be expressed with
> minrev but *in addition* to the current issue, patch 0x1000423 has minrev
> wrong so that dependency cannot be upheld there either.
>
> But then why even mention it if you're not going to test it?
>
> Why do we care about GNR101 at all?
>
My original intention was to explain why rejection is need for the late
loading path. There is a minrev check, but broken with that case.
But to preserve the legacy behavior, the minrev check isn't enforced by
default. So what's the point of mentioning? Yes, if we need to ban
particular revisions, we need to do it everywhere.
So mentioning minrev is just distracting readers as long as rejection is
based on revision number in the first place. Let me remove minrev
wording from this patch.
>> + * header (GNR101).
>> + *
>> + * Prevent loading 0x1000405 or later unless the CPU has already been
>> + * updated to 0x1000405 or later.
>> + */
>> + if (vfm == INTEL_GRANITERAPIDS_X &&
>> + x86_stepping(sig->sig) == 1 &&
>> + sig->pf & 0x95 &&
>> + sig->rev < 0x1000405 &&
>> + rev >= 0x1000405) {
>
> You don't really need to test rev here - it is enough that sig->rev is
> < 0x1000405 - that already makes you susceptible and then you can check rev
> inside the { }.
Yeah, I'd like to simplify like that, though. Intel repository looks to
have three published revisions before 0x1000405. So there can be a valid
update between those revisions.
So still need to allow:
old_rev < 0x1000405 -> new_rev < 0x1000405
while rejecting:
old_rev < 0x1000405 -> new_rev >= 0x1000405
>
>> + if (rev == 0x1000405)
>> + pr_err_once("Erratum GNR98: 0x1000405 is not loadable.\n");
>> + else
>> + pr_err_once("Erratum GNR98: 0x1000405 is required before 0x%x.\n", rev);
>> + pr_err_once("Please update the system BIOS or firmware.\n");
>
> This is useless most of the time because client won't usually get BIOS
> updates. You can tell people they should update their microcode packages
> instead. That's where we can really help.
>
I see.
I think anyone seeing this message has probably already tried updating
microcode. With `GNR98` in the message, they would still need to decode
it by looking up the erratum and its workaround if want to follow up on it:
Workaround: None identified. Software should avoid updating MCU
versions earlier than 0x1000405 to 0x1000405 or later until the system
is Firmware Interface Table (FIT) loaded with UEFI FW/BIOS to
0x1000405 or later.
Then there isn't much point of the additional message, I suppose. I'll
remove it.
>>
>> - if (is_blacklisted(cpu))
>> + if (is_late_loading_denied(cpu))
>
> Aaaah, you wanna be politically correct and can't use "blacklisted" anymore.
>
> Well, you're not introducing new usage so you don't have to touch old usage.
> And "is denied" does not express the situation properly. Try a better one.
Okay. I'll leave the existing "is_blacklisted(cpu)" as it-is since it
already exists and probably descriptive enough. Also assuming it will
remain distinctive from the new one, e.g. revision_banned(...).
Thanks,
Chang
next prev parent reply other threads:[~2026-09-03 21:04 UTC|newest]
Thread overview: 14+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-09-01 23:16 [PATCH 0/8] x86/microcode: Address GNR errata and follow-up Chang S. Bae
2026-09-01 23:16 ` [PATCH 1/8] x86/microcode/intel: Reject problematic loading on GNR systems Chang S. Bae
2026-09-02 13:11 ` Sohil Mehta
2026-09-02 13:21 ` Van De Ven, Arjan
2026-09-02 14:23 ` Dave Hansen
2026-09-03 1:51 ` Borislav Petkov
2026-09-03 21:04 ` Chang S. Bae [this message]
2026-09-01 23:16 ` [PATCH 2/8] x86/microcode: Solidify base_rev= option parsing Chang S. Bae
2026-09-01 23:16 ` [PATCH 3/8] x86/microcode: Accept a boolean for force_minrev parameter Chang S. Bae
2026-09-01 23:16 ` [PATCH 4/8] x86/microcode: Mark early_data __initdata Chang S. Bae
2026-09-01 23:16 ` [PATCH RFC 5/8] x86/microcode: Decouple minimum revision check from late loading Chang S. Bae
2026-09-01 23:16 ` [PATCH RFC 6/8] x86/microcode/intel: Apply minimum revision check to early loading Chang S. Bae
2026-09-01 23:16 ` [PATCH RFC 7/8] x86/microcode: Introduce iterative late loading Chang S. Bae
2026-09-01 23:16 ` [PATCH RFC 8/8] x86/microcode/intel: Select the lowest loadable revision for iterative loading Chang S. Bae
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=96ca6bc4-a03a-4e4e-b82c-f5202cdf21ac@intel.com \
--to=chang.seok.bae@intel.com \
--cc=andrew.cooper3@citrix.com \
--cc=arjan.van.de.ven@intel.com \
--cc=bp@alien8.de \
--cc=dave.hansen@linux.intel.com \
--cc=hpa@zytor.com \
--cc=linux-kernel@vger.kernel.org \
--cc=mingo@redhat.com \
--cc=stable@vger.kernel.org \
--cc=tglx@kernel.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
all inboxes | Powered by JetHome®