x86/mce: Make sure CMCI banks are cleared during shutdown on Intel
authorJP Kobryn <inwardvessel@gmail.com>
Fri, 27 Jun 2025 17:49:35 +0000 (10:49 -0700)
committerBorislav Petkov (AMD) <bp@alien8.de>
Sat, 28 Jun 2025 10:45:48 +0000 (12:45 +0200)
CMCI banks are not cleared during shutdown on Intel CPUs. As a side effect,
when a kexec is performed, CPUs coming back online are unable to
rediscover/claim these occupied banks which breaks MCE reporting.

Clear the CPU ownership during shutdown via cmci_clear() so the banks can
be reclaimed and MCE reporting will become functional once more.

  [ bp: Massage commit message. ]

Reported-by: Aijay Adams <aijay@meta.com>
Signed-off-by: JP Kobryn <inwardvessel@gmail.com>
Signed-off-by: Borislav Petkov (AMD) <bp@alien8.de>
Reviewed-by: Tony Luck <tony.luck@intel.com>
Reviewed-by: Qiuxu Zhuo <qiuxu.zhuo@intel.com>
Cc: <stable@kernel.org>
Link: https://lore.kernel.org/20250627174935.95194-1-inwardvessel@gmail.com
arch/x86/kernel/cpu/mce/intel.c

index efcf21e9552e33ccf5f229bf6f9604f9a282fda6..9b149b9c410901be2429dbad289ad30e4bfddba8 100644 (file)
@@ -478,6 +478,7 @@ void mce_intel_feature_init(struct cpuinfo_x86 *c)
 void mce_intel_feature_clear(struct cpuinfo_x86 *c)
 {
        intel_clear_lmce();
+       cmci_clear();
 }
 
 bool intel_filter_mce(struct mce *m)