From 83f7eb9c674c1bcaad6ca258fdd7dd3b96465a62 Mon Sep 17 00:00:00 2001 From: Glauber de Oliveira Costa Date: Wed, 19 Mar 2008 14:26:02 -0300 Subject: [PATCH] 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 Signed-off-by: Ingo Molnar --- arch/x86/kernel/smpboot.c | 21 ++++++++++++++++++++- arch/x86/kernel/smpboot_32.c | 21 --------------------- arch/x86/kernel/smpboot_64.c | 18 ------------------ 3 files changed, 20 insertions(+), 40 deletions(-) diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c index b214d8dcc0..26118b4a1c 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) { diff --git a/arch/x86/kernel/smpboot_32.c b/arch/x86/kernel/smpboot_32.c index 5d27b1db6c..75fb5064af 100644 --- a/arch/x86/kernel/smpboot_32.c +++ b/arch/x86/kernel/smpboot_32.c @@ -215,24 +215,3 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus) mb(); smp_boot_cpus(max_cpus); } - -extern void impress_friends(void); -extern void smp_checks(void); - -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(); - zap_low_mappings(); -} diff --git a/arch/x86/kernel/smpboot_64.c b/arch/x86/kernel/smpboot_64.c index f77299b063..f4363a38d0 100644 --- a/arch/x86/kernel/smpboot_64.c +++ b/arch/x86/kernel/smpboot_64.c @@ -212,21 +212,3 @@ void __init native_smp_prepare_cpus(unsigned int max_cpus) printk(KERN_INFO "CPU%d: ", 0); print_cpu_info(&cpu_data(0)); } - -extern void impress_friends(void); -extern void smp_checks(void); - -/* - * Finish the SMP boot. - */ -void __init native_smp_cpus_done(unsigned int max_cpus) -{ - smpboot_restore_warm_reset_vector(); - - Dprintk("Boot done.\n"); - - impress_friends(); - smp_checks(); - setup_ioapic_dest(); - check_nmi_watchdog(); -} -- 2.39.5