From: Greg Kroah-Hartman Date: Mon, 6 Nov 2017 08:50:16 +0000 (+0100) Subject: 3.18-stable patches X-Git-Tag: v3.18.80~9 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=659f88ba8909e9ba9e37acdc768880a71124e510;p=thirdparty%2Fkernel%2Fstable-queue.git 3.18-stable patches added patches: x86-microcode-intel-disable-late-loading-on-model-79.patch --- diff --git a/queue-3.18/series b/queue-3.18/series index e0ca7258b99..250f5f7535c 100644 --- a/queue-3.18/series +++ b/queue-3.18/series @@ -10,3 +10,4 @@ arm-8715-1-add-a-private-asm-unaligned.h.patch ocfs2-fstrim-fix-start-offset-of-first-cluster-group-during-fstrim.patch drm-msm-fix-potential-buffer-overflow-issue.patch drm-msm-fix-an-integer-overflow-test.patch +x86-microcode-intel-disable-late-loading-on-model-79.patch diff --git a/queue-3.18/x86-microcode-intel-disable-late-loading-on-model-79.patch b/queue-3.18/x86-microcode-intel-disable-late-loading-on-model-79.patch new file mode 100644 index 00000000000..1d9a9f0a5ec --- /dev/null +++ b/queue-3.18/x86-microcode-intel-disable-late-loading-on-model-79.patch @@ -0,0 +1,66 @@ +From 723f2828a98c8ca19842042f418fb30dd8cfc0f7 Mon Sep 17 00:00:00 2001 +From: Borislav Petkov +Date: Wed, 18 Oct 2017 13:12:25 +0200 +Subject: x86/microcode/intel: Disable late loading on model 79 + +From: Borislav Petkov + +commit 723f2828a98c8ca19842042f418fb30dd8cfc0f7 upstream. + +Blacklist Broadwell X model 79 for late loading due to an erratum. + +Signed-off-by: Borislav Petkov +Acked-by: Tony Luck +Cc: Linus Torvalds +Cc: Peter Zijlstra +Cc: Thomas Gleixner +Link: http://lkml.kernel.org/r/20171018111225.25635-1-bp@alien8.de +Signed-off-by: Ingo Molnar +Signed-off-by: Greg Kroah-Hartman + + +--- + arch/x86/kernel/cpu/microcode/intel.c | 18 ++++++++++++++++++ + 1 file changed, 18 insertions(+) + +--- a/arch/x86/kernel/cpu/microcode/intel.c ++++ b/arch/x86/kernel/cpu/microcode/intel.c +@@ -267,6 +267,18 @@ static int get_ucode_fw(void *to, const + return 0; + } + ++static bool is_blacklisted(unsigned int cpu) ++{ ++ struct cpuinfo_x86 *c = &cpu_data(cpu); ++ ++ if (c->x86 == 6 && c->x86_model == 79) { ++ pr_err_once("late loading on model 79 is disabled.\n"); ++ return true; ++ } ++ ++ return false; ++} ++ + static enum ucode_state request_microcode_fw(int cpu, struct device *device, + bool refresh_fw) + { +@@ -275,6 +287,9 @@ static enum ucode_state request_microcod + const struct firmware *firmware; + enum ucode_state ret; + ++ if (is_blacklisted(cpu)) ++ return UCODE_NFOUND; ++ + sprintf(name, "intel-ucode/%02x-%02x-%02x", + c->x86, c->x86_model, c->x86_mask); + +@@ -299,6 +314,9 @@ static int get_ucode_user(void *to, cons + static enum ucode_state + request_microcode_user(int cpu, const void __user *buf, size_t size) + { ++ if (is_blacklisted(cpu)) ++ return UCODE_NFOUND; ++ + return generic_load_microcode(cpu, (void *)buf, size, &get_ucode_user); + } +