aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/cpu/microcode
diff options
context:
space:
mode:
authorBorislav Petkov <bp@suse.de>2016-02-03 06:33:33 -0500
committerIngo Molnar <mingo@kernel.org>2016-02-09 05:41:16 -0500
commitb7f500aedd4551a9bf29c617804c13f0ff18c879 (patch)
tree6372a89a75758c87ea4a5ac017652e9057bccef4 /arch/x86/kernel/cpu/microcode
parent43858f57bc02388a6420321c021397591199cf91 (diff)
x86/microcode: Issue update message only once
This is especially annoying on large boxes: x86: Booting SMP configuration: .... node #0, CPUs: #1 microcode: CPU1 microcode updated early to revision 0x428, date = 2014-05-29 #2 microcode: CPU2 microcode updated early to revision 0x428, date = 2014-05-29 #3 ... so issue the update message only once. $ grep microcode /proc/cpuinfo shows whether every core got updated properly. Reported-by: Ingo Molnar <mingo@kernel.org> 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-6-git-send-email-bp@alien8.de Signed-off-by: Ingo Molnar <mingo@kernel.org>
Diffstat (limited to 'arch/x86/kernel/cpu/microcode')
-rw-r--r--arch/x86/kernel/cpu/microcode/amd.c4
-rw-r--r--arch/x86/kernel/cpu/microcode/intel.c13
2 files changed, 7 insertions, 10 deletions
diff --git a/arch/x86/kernel/cpu/microcode/amd.c b/arch/x86/kernel/cpu/microcode/amd.c
index 2233f8a76615..5b63e2f669b0 100644
--- a/arch/x86/kernel/cpu/microcode/amd.c
+++ b/arch/x86/kernel/cpu/microcode/amd.c
@@ -432,8 +432,8 @@ int __init save_microcode_in_initrd_amd(void)
432 container = cont_va; 432 container = cont_va;
433 433
434 if (ucode_new_rev) 434 if (ucode_new_rev)
435 pr_info("microcode: updated early to new patch_level=0x%08x\n", 435 pr_info_once("microcode updated early to new patch_level=0x%08x\n",
436 ucode_new_rev); 436 ucode_new_rev);
437 437
438 eax = cpuid_eax(0x00000001); 438 eax = cpuid_eax(0x00000001);
439 eax = ((eax >> 8) & 0xf) + ((eax >> 20) & 0xff); 439 eax = ((eax >> 8) & 0xf) + ((eax >> 20) & 0xff);
diff --git a/arch/x86/kernel/cpu/microcode/intel.c b/arch/x86/kernel/cpu/microcode/intel.c
index 4f4735bd8698..f4bc5fe00d46 100644
--- a/arch/x86/kernel/cpu/microcode/intel.c
+++ b/arch/x86/kernel/cpu/microcode/intel.c
@@ -571,14 +571,11 @@ scan_microcode(struct mc_saved_data *mc_saved_data, unsigned long *initrd,
571static void 571static void
572print_ucode_info(struct ucode_cpu_info *uci, unsigned int date) 572print_ucode_info(struct ucode_cpu_info *uci, unsigned int date)
573{ 573{
574 int cpu = smp_processor_id(); 574 pr_info_once("microcode updated early to revision 0x%x, date = %04x-%02x-%02x\n",
575 575 uci->cpu_sig.rev,
576 pr_info("CPU%d microcode updated early to revision 0x%x, date = %04x-%02x-%02x\n", 576 date & 0xffff,
577 cpu, 577 date >> 24,
578 uci->cpu_sig.rev, 578 (date >> 16) & 0xff);
579 date & 0xffff,
580 date >> 24,
581 (date >> 16) & 0xff);
582} 579}
583 580
584#ifdef CONFIG_X86_32 581#ifdef CONFIG_X86_32