This patch is added as it is fixing a regression introduced by
d8630b67ca1ed ("x86/cpu: Add platform ID to CPU info structure")

commit cda64169bade79427f264e43d0f422eaed9dc116
Author: Borislav Petkov <[email protected]>
Date:   Wed May 13 22:06:01 2026 +0200

    x86/microcode: Do not access MSR_IA32_PLATFORM_ID when running as a guest
    
    Patch in Fixes: causes the usual:
    
      unchecked MSR access error: RDMSR from 0x17 at ... (intel_get_platform_id)
      Call Trace:
       early_init_intel
       early_cpu_init
       setup_arch
       _printk
       start_kernel
       x86_64_start_reservations
       x86_64_start_kernel
       common_startup_64
    
    because the kernel is booted in a guest.
    
    In order to avoid it, this MSR access needs to be prevented when running
    virtualized. That is usually done by checking X86_FEATURE_HYPERVISOR but
    for this particular case it is too early yet.
    
    The platform ID needs to be read as early as when microcode is loaded on
    the BSP:
    
      load_ucode_bsp ... -> get_microcode_blob ... -> 
intel_find_matching_signature
    
    and by that time, CPUID leafs haven't been parsed yet.
    
    The microcode loader already has logic to check early whether the kernel
    is running virtualized so make that globally available to arch/x86/. The
    query whether running virtualized is getting more and more prominent in
    recent times so might as well make it an arch-global var which the rest
    of the code can use.
    
    Fixes: d8630b67ca1ed ("x86/cpu: Add platform ID to CPU info structure")
    Reported-by: Vishal Verma <[email protected]>
    Signed-off-by: Borislav Petkov (AMD) <[email protected]>
    Reviewed-by: Binbin Wu <[email protected]>
    Reviewed-by: Xiaoyao Li <[email protected]>
    Tested-by: Binbin Wu <[email protected]>
    Link: 
https://lore.kernel.org/all/[email protected]


** Description changed:

  [ Impact ]
  The issue is Intel added code to Linux to check for old microcode.  They base 
it on some processor fields not realizing there are multiple processor SKUs 
with the same processor field information.  The result is the Linux wrongly 
prints out "Running old microcode" and sets taint bit 2 for some processor SKUs.
  It takes specific Intel processor SKUs to hit the issue.  This has been seen 
with Sapphire Rapids and Granite Rapids processors
  
  [ Fix ]
  
  These patches fix the issue
- 
+ cda64169 x86/microcode: Do not access MSR_IA32_PLATFORM_ID when running as a 
guest
  238be4ba   x86/microcode: Refactor platform ID enumeration into a helper
  d8630b67   x86/cpu: Add platform ID to CPU info structure
  fab0c75d   x86/cpu: Add platform ID to CPU matching structure
  7989c393   x86/microcode: Add platform mask to Intel microcode "old" list
  
  The patches fix false-positive "old microcode"/taint-bit-2 reports on
  Sapphire Rapids and Granite Rapids SKUs.
  
  [ Test Plan ]
  After booting the system check the /proc/sys/kernel/tainted file for the 
incorrect microcode error
  
   Without the fix:
  
    root@gnh-204:~# cat /proc/sys/kernel/tainted
    4
    root@gnh-204:~# dmesg | grep microcode
    [    0.000000] x86/CPU: Running old microcode
    [   10.088285] microcode: Enabled staging feature.
    [   10.092931] microcode: Current revision: 0x01000434
  
   With the fix:
  
    root@gnh-204:~# cat /proc/sys/kernel/tainted
    0
    root@gnh-204:~# dmesg | grep microcode
    [   10.090836] microcode: Enabled staging feature.
    [   10.095475] microcode: Current revision: 0x01000434
  
  [ Where problems could occur ]
  
  The regression risk is low. This code is only touching the x86
  microcode/CPU-matching code path and no other subsystems are affected.
  
  [ Other Info ]
  
  
https://code.launchpad.net/~mreed8855/ubuntu/+source/linux/+git/resolute/+ref/kernel_taint_lp_2161748_intel

-- 
You received this bug notification because you are a member of Ubuntu
Bugs, which is subscribed to Ubuntu.
https://bugs.launchpad.net/bugs/2161748

Title:
  [SRU][HPE] Take Intel platform into account for old microcode checks

To manage notifications about this bug go to:
https://bugs.launchpad.net/ubuntu/+source/linux/+bug/2161748/+subscriptions


-- 
ubuntu-bugs mailing list
[email protected]
https://lists.ubuntu.com/mailman/listinfo/ubuntu-bugs

Reply via email to