summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/microcode/core.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@kernel.org>2014-12-08 10:26:29 +0100
committerIngo Molnar <mingo@kernel.org>2014-12-08 10:26:29 +0100
commite913b8cd4548cd0a407b7debd6ec9104e84d050d (patch)
tree661e543af2cab13c77b21519d49534e51e319fbd /arch/x86/kernel/cpu/microcode/core.c
parent2ef84b3bb97f03332f0c1edb4466b1750dcf97b5 (diff)
parentfbae4ba8c4a387e306adc9c710e5c225cece7678 (diff)
Merge tag 'microcode_fixes_for_3.19' of git://git.kernel.org/pub/scm/linux/kernel/git/bp/bp into x86/microcode
Pull x86 microcode fixes from Borislav Petkov: "Reload microcode when resuming and the case when only the early loader has been utilized. Also, do not load the driver on paravirt guests, from Boris Ostrovsky." Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/kernel/cpu/microcode/core.c')
-rw-r--r--arch/x86/kernel/cpu/microcode/core.c10
1 files changed, 2 insertions, 8 deletions
diff --git a/arch/x86/kernel/cpu/microcode/core.c b/arch/x86/kernel/cpu/microcode/core.c
index 2ce9051174e..15c29096136 100644
--- a/arch/x86/kernel/cpu/microcode/core.c
+++ b/arch/x86/kernel/cpu/microcode/core.c
@@ -466,13 +466,7 @@ static void mc_bp_resume(void)
if (uci->valid && uci->mc)
microcode_ops->apply_microcode(cpu);
else if (!uci->mc)
- /*
- * We might resume and not have applied late microcode but still
- * have a newer patch stashed from the early loader. We don't
- * have it in uci->mc so we have to load it the same way we're
- * applying patches early on the APs.
- */
- load_ucode_ap();
+ reload_early_microcode();
}
static struct syscore_ops mc_syscore_ops = {
@@ -557,7 +551,7 @@ static int __init microcode_init(void)
struct cpuinfo_x86 *c = &cpu_data(0);
int error;
- if (dis_ucode_ldr)
+ if (paravirt_enabled() || dis_ucode_ldr)
return 0;
if (c->x86_vendor == X86_VENDOR_INTEL)