Merge branch 'x86-platform-for-linus' of git://git.kernel.org/pub/scm/linux/kernel...
[firefly-linux-kernel-4.4.55.git] / arch / x86 / kernel / smpboot.c
index 00eef55c8327916597aef8bfa39c14e4c4a45be5..66d250c00d115bbaae4c7ab0917ce9c0dfe89643 100644 (file)
@@ -846,7 +846,8 @@ int __cpuinit native_cpu_up(unsigned int cpu)
        pr_debug("++++++++++++++++++++=_---CPU UP  %u\n", cpu);
 
        if (apicid == BAD_APICID || apicid == boot_cpu_physical_apicid ||
-           !physid_isset(apicid, phys_cpu_present_map)) {
+           !physid_isset(apicid, phys_cpu_present_map) ||
+           (!x2apic_mode && apicid >= 255)) {
                printk(KERN_ERR "%s: bad cpu %d\n", __func__, cpu);
                return -EINVAL;
        }
@@ -1148,6 +1149,7 @@ void __init native_smp_cpus_done(unsigned int max_cpus)
 {
        pr_debug("Boot done.\n");
 
+       nmi_selftest();
        impress_friends();
 #ifdef CONFIG_X86_IO_APIC
        setup_ioapic_dest();