Commit e6ebf5deaaaa33b661f0db86380c232b162bd68c

Authored by Fenghua Yu
Committed by H. Peter Anvin
1 parent d288e1cf8e

x86/common.c: load ucode in 64 bit or show loading ucode info in 32 bit on AP

In 64 bit, load ucode on AP in cpu_init().

In 32 bit, show ucode loading info on AP in cpu_init(). Microcode has been
loaded earlier before paging. Now it is safe to show the loading microcode
info on this AP.

Signed-off-by: Fenghua Yu <fenghua.yu@intel.com>
Link: http://lkml.kernel.org/r/1356075872-3054-5-git-send-email-fenghua.yu@intel.com
Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>

Showing 1 changed file with 8 additions and 0 deletions Side-by-side Diff

arch/x86/kernel/cpu/common.c
... ... @@ -1220,6 +1220,12 @@
1220 1220 int cpu;
1221 1221 int i;
1222 1222  
  1223 + /*
  1224 + * Load microcode on this cpu if a valid microcode is available.
  1225 + * This is early microcode loading procedure.
  1226 + */
  1227 + load_ucode_ap();
  1228 +
1223 1229 cpu = stack_smp_processor_id();
1224 1230 t = &per_cpu(init_tss, cpu);
1225 1231 oist = &per_cpu(orig_ist, cpu);
... ... @@ -1310,6 +1316,8 @@
1310 1316 struct task_struct *curr = current;
1311 1317 struct tss_struct *t = &per_cpu(init_tss, cpu);
1312 1318 struct thread_struct *thread = &curr->thread;
  1319 +
  1320 + show_ucode_info_early();
1313 1321  
1314 1322 if (cpumask_test_and_set_cpu(cpu, cpu_initialized_mask)) {
1315 1323 printk(KERN_WARNING "CPU#%d already initialized!\n", cpu);