1
0
Fork 0
alistair23-linux/arch/x86/kernel/cpu
Dominik Brodowski 5b0bc9ac2c x86/microcode/intel: Clear patch pointer before jettisoning the initrd
During early boot, load_ucode_intel_ap() uses __load_ucode_intel()
to obtain a pointer to the relevant microcode patch (embedded in the
initrd), and stores this value in 'intel_ucode_patch' to speed up the
microcode patch application for subsequent CPUs.

On resuming from suspend-to-RAM, however, load_ucode_ap() calls
load_ucode_intel_ap() for each non-boot-CPU. By then the initramfs is
long gone so the pointer stored in 'intel_ucode_patch' no longer points to
a valid microcode patch.

Clear that pointer so that we effectively fall back to the CPU hotplug
notifier callbacks to update the microcode.

Signed-off-by: Dominik Brodowski <linux@dominikbrodowski.net>
[ Edit and massage commit message. ]
Signed-off-by: Borislav Petkov <bp@suse.de>
Cc: <stable@vger.kernel.org> # 4.10..
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/20170607095819.9754-1-bp@alien8.de
Signed-off-by: Ingo Molnar <mingo@kernel.org>
2017-06-08 10:03:05 +02:00
..
mcheck x86/MCE: Export memory_error() 2017-05-21 21:39:58 +02:00
microcode x86/microcode/intel: Clear patch pointer before jettisoning the initrd 2017-06-08 10:03:05 +02:00
mtrr x86/boot/e820: Prefix the E820_* type names with "E820_TYPE_" 2017-01-28 22:55:22 +01:00
.gitignore
Makefile Merge branch 'x86-cache-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2016-12-22 09:25:45 -08:00
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 x86/cpu: Restore MSR_IA32_ENERGY_PERF_BIAS after resume 2015-07-21 07:51:38 +02:00
cyrix.c x86/cpu/cyrix: Add alternative Device ID of Geode GX1 SoC 2017-06-05 08:34:20 +02:00
hypervisor.c x86/cpu: remove hypervisor specific set_cpu_features 2017-05-02 11:14:30 +02:00
intel.c x86/arch_prctl: Add ARCH_[GET|SET]_CPUID 2017-03-20 16:10:34 +01:00
intel_cacheinfo.c sched/headers: Prepare to remove <linux/cred.h> inclusion from <linux/sched.h> 2017-03-02 08:42:31 +01:00
intel_rdt.c x86/intel_rdt: Fix padding when resource is enabled via mount 2017-04-20 15:57:59 +02:00
intel_rdt_rdtgroup.c x86/intel_rdt/mba: Add info directory files for Memory Bandwidth Allocation 2017-04-14 16:10:08 +02:00
intel_rdt_schemata.c x86/intel_rdt: Return error for incorrect resource names in schemata 2017-04-20 15:57:59 +02:00
match.c x86/kernel: Audit and remove any unnecessary uses of module.h 2016-07-14 15:06:41 +02:00
mkcapflags.sh x86/cpufeature: Carve out X86_FEATURE_* 2016-01-30 11:22:17 +01:00
mshyperv.c Drivers: hv: Issue explicit EOI when autoeoi is not enabled 2017-04-08 18:07:51 +02:00
perfctr-watchdog.c x86/kernel: Audit and remove any unnecessary uses of module.h 2016-07-14 15:06:41 +02:00
powerflags.c x86/cpu: Add advanced power management bits 2016-03-29 11:12:11 +02:00
proc.c x86/cpu: Drop wp_works_ok member of struct cpuinfo_x86 2017-03-11 14:30:24 +01:00
rdrand.c x86, asm: Use CC_SET()/CC_OUT() and static_cpu_has() in archrandom.h 2016-06-08 12:41:20 -07:00
scattered.c x86/intel_rdt/mba: Memory bandwith allocation feature detect 2017-04-14 16:10:07 +02:00
topology.c x86/cpu: Convert printk(KERN_<LEVEL> ...) to pr_<level>(...) 2016-02-03 10:30:03 +01:00
transmeta.c Merge branch 'sched-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip 2017-03-07 14:42:34 -08:00
umc.c x86: Delete non-required instances of include <linux/init.h> 2014-01-06 21:25:18 -08:00
vmware.c vmware: set cpu capabilities during platform initialization 2017-05-02 11:14:24 +02:00