On systems where a runtime microcode update has occurred the microcode version is wrong because boot_cpu_data.microcode is not updated during runtime.
Use the per-CPU microcode version in the MCE message. Signed-off-by: Prarit Bhargava <[email protected]> Cc: Tony Luck <[email protected]> Cc: Borislav Petkov <[email protected]> Cc: Thomas Gleixner <[email protected]> Cc: Ingo Molnar <[email protected]> Cc: "H. Peter Anvin" <[email protected]> Cc: [email protected] Cc: [email protected] --- arch/x86/kernel/cpu/mcheck/mce.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/arch/x86/kernel/cpu/mcheck/mce.c b/arch/x86/kernel/cpu/mcheck/mce.c index c102ad51025e..64fee27433e9 100644 --- a/arch/x86/kernel/cpu/mcheck/mce.c +++ b/arch/x86/kernel/cpu/mcheck/mce.c @@ -134,7 +134,7 @@ void mce_setup(struct mce *m) if (this_cpu_has(X86_FEATURE_INTEL_PPIN)) rdmsrl(MSR_PPIN, m->ppin); - m->microcode = boot_cpu_data.microcode; + m->microcode = cpu_data(m->extcpu).microcode; } DEFINE_PER_CPU(struct mce, injectm); -- 2.14.4

