summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2016-10-29 22:42:44 +0200
committerLinus Torvalds <torvalds@linux-foundation.org>2016-10-29 22:42:44 +0200
commit42fd2b5006c317ffe650e69f69b50bde3d6ff6c9 (patch)
tree0c3c720e28b4e0b47a9bc8fc0fbf1c8f91bd0065
parentMerge tag 'upstream-4.9-rc3' of git://git.infradead.org/linux-ubifs (diff)
parentx86/smpboot: Init apic mapping before usage (diff)
downloadlinux-42fd2b5006c317ffe650e69f69b50bde3d6ff6c9.tar.xz
linux-42fd2b5006c317ffe650e69f69b50bde3d6ff6c9.zip
Merge branch 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
Pull x86 bugfix from Thomas Gleixner: "A single bugfix for the recent changes related to registering the boot cpu when this has not happened before prefill_possible_map(). The main problem with this change got fixed already, but we missed the case where the local APIC is not yet mapped, when prefill_possible_map() is invoked, so the registration of the boot cpu which has the APIC bit set in CPUID will explode. I should have seen that issue earlier, but all I can do now is feeling embarassed" * 'x86-urgent-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: x86/smpboot: Init apic mapping before usage
-rw-r--r--arch/x86/kernel/setup.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/arch/x86/kernel/setup.c b/arch/x86/kernel/setup.c
index bbfbca5fea0c..9c337b0e8ba7 100644
--- a/arch/x86/kernel/setup.c
+++ b/arch/x86/kernel/setup.c
@@ -1221,11 +1221,16 @@ void __init setup_arch(char **cmdline_p)
*/
get_smp_config();
+ /*
+ * Systems w/o ACPI and mptables might not have it mapped the local
+ * APIC yet, but prefill_possible_map() might need to access it.
+ */
+ init_apic_mappings();
+
prefill_possible_map();
init_cpu_to_node();
- init_apic_mappings();
io_apic_init_mappings();
kvm_guest_init();