diff options
author | Borislav Petkov <bp@suse.de> | 2016-10-25 05:55:18 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@kernel.org> | 2016-10-25 06:28:58 -0400 |
commit | 7f709d0c322203e37581f6b7c91f88b4fdeca5a0 (patch) | |
tree | 5fdd673fe3ac42b1a00f38c0e87b99369ab07c1e | |
parent | 6b14b81899a2e1e5dd0d089f2a41a6118929658d (diff) |
x86/microcode: Collect CPU info on resume
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>
-rw-r--r-- | arch/x86/kernel/cpu/microcode/core.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c index a18ff7547fa9..f737039d59b2 100644 --- a/arch/x86/kernel/cpu/microcode/core.c +++ b/arch/x86/kernel/cpu/microcode/core.c | |||
@@ -498,6 +498,9 @@ static enum ucode_state microcode_update_cpu(int cpu) | |||
498 | { | 498 | { |
499 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu; | 499 | struct ucode_cpu_info *uci = ucode_cpu_info + cpu; |
500 | 500 | ||
501 | /* Refresh CPU microcode revision after resume. */ | ||
502 | collect_cpu_info(cpu); | ||
503 | |||
501 | if (uci->valid) | 504 | if (uci->valid) |
502 | return microcode_resume_cpu(cpu); | 505 | return microcode_resume_cpu(cpu); |
503 | 506 | ||