aboutsummaryrefslogtreecommitdiff
path: root/arch/x86/kernel/smpboot.c
diff options
context:
space:
mode:
authorGlauber de Oliveira Costa <gcosta@redhat.com>2008-03-19 14:26:02 -0300
committerIngo Molnar <mingo@elte.hu>2008-04-17 17:41:04 +0200
commit83f7eb9c674c1bcaad6ca258fdd7dd3b96465a62 (patch)
treeedc24f8ee55d3bab0a35d7dc72da17a1137cf880 /arch/x86/kernel/smpboot.c
parenta8db8453ff52609b14716361651ad10d2ab66682 (diff)
x86: merge native_smp_cpus_done
They look similar enough, and are merged. Only difference (zap_low_mapping for i386) is inside ifdef Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/smpboot.c')
-rw-r--r--arch/x86/kernel/smpboot.c21
1 files changed, 20 insertions, 1 deletions
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index b214d8dcc07..26118b4a1c3 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -880,7 +880,6 @@ do_rest:
apic_write(APIC_ESR, 0);
apic_read(APIC_ESR);
-
/*
* Starting actual IPI sequence...
*/
@@ -1017,6 +1016,26 @@ void __init native_smp_prepare_boot_cpu(void)
per_cpu(cpu_state, me) = CPU_ONLINE;
}
+void __init native_smp_cpus_done(unsigned int max_cpus)
+{
+ /*
+ * Cleanup possible dangling ends...
+ */
+ smpboot_restore_warm_reset_vector();
+
+ Dprintk("Boot done.\n");
+
+ impress_friends();
+ smp_checks();
+#ifdef CONFIG_X86_IO_APIC
+ setup_ioapic_dest();
+#endif
+ check_nmi_watchdog();
+#ifdef CONFIG_X86_32
+ zap_low_mappings();
+#endif
+}
+
#ifdef CONFIG_HOTPLUG_CPU
void remove_siblinginfo(int cpu)
{