summaryrefslogtreecommitdiffstats
path: root/arch
diff options
context:
space:
mode:
authorBorislav Petkov <bp@suse.de>2016-02-03 12:33:38 +0100
committerIngo Molnar <mingo@kernel.org>2016-02-09 11:41:17 +0100
commit58b5f2cc4bdbc9b616e68639f5a84886aa5be590 (patch)
tree07bec71eea3310896bcc6faf04dcdba9b41d01b5 /arch
parentde778275c295825e6638f3f74103f40642d45caa (diff)
downloadlinux-stable-58b5f2cc4bdbc9b616e68639f5a84886aa5be590.tar.gz
linux-stable-58b5f2cc4bdbc9b616e68639f5a84886aa5be590.tar.bz2
linux-stable-58b5f2cc4bdbc9b616e68639f5a84886aa5be590.zip
x86/microcode/intel: Move the BUG_ON up and turn it into WARN_ON
If we're going to BUG_ON() because we're running on the wrong CPU, we better do it as the first thing we do when entering that function. And also, turn it into a WARN_ON() because it is not worth to panic the system if we apply the microcode on the wrong CPU - we're simply going to exit early. Tested-by: Thomas Voegtle <tv@lio96.de> Signed-off-by: Borislav Petkov <bp@suse.de> 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/1454499225-21544-11-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch')
-rw-r--r--arch/x86/kernel/cpu/microcode/intel.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c
index d1b2f583f543..c029c2bb2a29 100644
--- a/arch/x86/kernel/cpu/microcode/intel.c
+++ b/arch/x86/kernel/cpu/microcode/intel.c
@@ -843,12 +843,12 @@ static int apply_microcode_intel(int cpu)
int cpu_num = raw_smp_processor_id();
struct cpuinfo_x86 *c = &cpu_data(cpu_num);
- uci = ucode_cpu_info + cpu;
- mc = uci->mc;
-
/* We should bind the task to the CPU */
- BUG_ON(cpu_num != cpu);
+ if (WARN_ON(cpu_num != cpu))
+ return -1;
+ uci = ucode_cpu_info + cpu;
+ mc = uci->mc;
if (!mc)
return 0;