linux-bl808/arch/x86/kernel/cpu
Borislav Petkov dac6ca243c x86/microcode/AMD: Change load_microcode_amd()'s param to bool to fix preemptibility bug
With CONFIG_DEBUG_PREEMPT enabled, I get:

  BUG: using smp_processor_id() in preemptible [00000000] code: swapper/0/1
  caller is debug_smp_processor_id
  CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.12.0-rc2+ #2
  Call Trace:
   dump_stack
   check_preemption_disabled
   debug_smp_processor_id
   save_microcode_in_initrd_amd
   ? microcode_init
   save_microcode_in_initrd
   ...

because, well, it says it above, we're using smp_processor_id() in
preemptible code.

But passing the CPU number is not really needed. It is only used to
determine whether we're on the BSP, and, if so, to save the microcode
patch for early loading.

 [ We don't absolutely need to do it on the BSP but we do that
   customarily there. ]

Instead, convert that function parameter to a boolean which denotes
whether the patch should be saved or not, thereby avoiding the use of
smp_processor_id() in preemptible code.

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/20170528200414.31305-1-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2017-05-29 08:22:48 +02:00
..
mcheck x86/MCE: Export memory_error() 2017-05-21 21:39:58 +02:00
microcode x86/microcode/AMD: Change load_microcode_amd()'s param to bool to fix preemptibility bug 2017-05-29 08:22:48 +02:00
mtrr
.gitignore
amd.c xen: fixes for 4.12-rc0 2017-05-12 10:09:14 -07:00
bugs.c x86: use set_memory.h header 2017-05-08 17:15:13 -07:00
centaur.c Merge branch 'x86-boot-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-05-01 20:51:12 -07:00
common.c x86/cpu: remove hypervisor specific set_cpu_features 2017-05-02 11:14:30 +02:00
cpu.h
cyrix.c
hypervisor.c x86/cpu: remove hypervisor specific set_cpu_features 2017-05-02 11:14:30 +02:00
intel.c
intel_cacheinfo.c
intel_rdt.c
intel_rdt_rdtgroup.c
intel_rdt_schemata.c
Makefile
match.c
mkcapflags.sh
mshyperv.c
perfctr-watchdog.c
powerflags.c
proc.c
rdrand.c
scattered.c
topology.c
transmeta.c
umc.c
vmware.c vmware: set cpu capabilities during platform initialization 2017-05-02 11:14:24 +02:00