x86/microcode: Collect CPU info on resume
authorBorislav Petkov <bp@suse.de>
Tue, 25 Oct 2016 09:55:18 +0000 (11:55 +0200)
committerIngo Molnar <mingo@kernel.org>
Tue, 25 Oct 2016 10:28:58 +0000 (12:28 +0200)
We need to reread the CPU's microcode revision after resume because
applied microcode gets "forgotten" depending on the sleep state.

Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: Andy Lutomirski <luto@kernel.org>
Cc: Borislav Petkov <bp@alien8.de>
Cc: Brian Gerst <brgerst@gmail.com>
Cc: Denys Vlasenko <dvlasenk@redhat.com>
Cc: H. Peter Anvin <hpa@zytor.com>
Cc: Josh Poimboeuf <jpoimboe@redhat.com>
Cc: Linus Torvalds <torvalds@linux-foundation.org>
Cc: Peter Zijlstra <peterz@infradead.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Link: http://lkml.kernel.org/r/20161025095522.11964-9-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
arch/x86/kernel/cpu/microcode/core.c

index a18ff7547fa945832b9187999862bbd1e6a76a27..f737039d59b2611354109cbbb3d3a4c5dfe4d76a 100644 (file)
@@ -498,6 +498,9 @@ static enum ucode_state microcode_update_cpu(int cpu)
 {
        struct ucode_cpu_info *uci = ucode_cpu_info + cpu;
 
+       /* Refresh CPU microcode revision after resume. */
+       collect_cpu_info(cpu);
+
        if (uci->valid)
                return microcode_resume_cpu(cpu);