Re: [PATCH v3] x86/microcode/intel: Reject problematic loading on Granite Rapids systems

From: Chang S. Bae

Date: Thu Sep 17 2026 - 15:38:49 EST


On 9/17/2026 11:43 AM, Van De Ven, Arjan wrote:

But we could, on the actual application, at least check if the ucode
> already got upgraded to EXACTLY the target version, and skip the
> actual application if it has been upgraded. That is a simple check
> with basically no policy ("identity") but with huge savings

Yes, I think that' what we do now:

__apply_microcode(..., struct microcode_intel *mc, ...)
{
u32 rev;

if (!mc)
return UCODE_NFOUND;

*cur_rev = intel_get_microcode_revision();
^ read MSR0x8b (aka MSR_IA32_UCODE_REV)
if (*cur_rev >= mc->hdr.rev) {
uci->cpu_sig.rev = *cur_rev;
return UCODE_OK;
^ we skip the loading if updated
}

/* write microcode via MSR 0x79 */
native_wrmsrq(MSR_IA32_UCODE_WRITE, (unsigned long)mc->bits);
...
}

https://git.kernel.org/pub/scm/linux/kernel/git/torvalds/linux.git/tree/arch/x86/kernel/cpu/microcode/intel.c#n646

Thanks,
Chang