From 433215b64047642fe4de15b7cee51006946e8323 Mon Sep 17 00:00:00 2001 From: Glauber de Oliveira Costa Date: Wed, 19 Mar 2008 14:25:29 -0300 Subject: [PATCH] --- yaml --- r: 88815 b: refs/heads/master c: f68e00a32b4f5a2881c3a39d71cc2c22e92f1d99 h: refs/heads/master i: 88813: f8cfa33879b12be97f52e371ac200e0821a0a9c3 88811: 9c4897013801fb231c45b5611e192f6af8c788e1 88807: 73c1a75ddce32c74891c73c0c14d2e77a45b32aa 88799: f17637dca2b9fb40b43c502303019494da6157ad v: v3 --- [refs] | 2 +- trunk/arch/x86/kernel/smpboot.c | 4 ++-- trunk/arch/x86/kernel/smpboot_32.c | 22 ++++++++++++---------- trunk/arch/x86/kernel/smpboot_64.c | 8 ++++++++ 4 files changed, 23 insertions(+), 13 deletions(-) diff --git a/[refs] b/[refs] index 393f2a6cdc20..1f09b2f25ca8 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 693d4b8a6429af7f2029df20a59e22f4d752e141 +refs/heads/master: f68e00a32b4f5a2881c3a39d71cc2c22e92f1d99 diff --git a/trunk/arch/x86/kernel/smpboot.c b/trunk/arch/x86/kernel/smpboot.c index ddb94ef37789..6978f1bf6533 100644 --- a/trunk/arch/x86/kernel/smpboot.c +++ b/trunk/arch/x86/kernel/smpboot.c @@ -114,7 +114,7 @@ void smp_checks(void) * approved Athlon */ if (tainted & TAINT_UNSAFE_SMP) { - if (cpus_weight(cpu_present_map)) + if (num_online_cpus()) printk(KERN_INFO "WARNING: This combination of AMD" "processors is not suitable for SMP.\n"); else @@ -258,7 +258,7 @@ void impress_friends(void) bogosum += cpu_data(cpu).loops_per_jiffy; printk(KERN_INFO "Total of %d processors activated (%lu.%02lu BogoMIPS).\n", - cpus_weight(cpu_present_map), + num_online_cpus(), bogosum/(500000/HZ), (bogosum/(5000/HZ))%100); diff --git a/trunk/arch/x86/kernel/smpboot_32.c b/trunk/arch/x86/kernel/smpboot_32.c index 361851cdaa97..1736404c3c36 100644 --- a/trunk/arch/x86/kernel/smpboot_32.c +++ b/trunk/arch/x86/kernel/smpboot_32.c @@ -788,8 +788,6 @@ static int __init smp_sanity_check(unsigned max_cpus) return 0; } -extern void impress_friends(void); -extern void smp_checks(void); /* * Cycle through the processors sending APIC IPIs to boot each. */ @@ -857,14 +855,6 @@ static void __init smp_boot_cpus(unsigned int max_cpus) ++kicked; } - /* - * Cleanup possible dangling ends... - */ - smpboot_restore_warm_reset_vector(); - - impress_friends(); - - smp_checks(); /* * construct cpu_sibling_map, so that we can tell sibling CPUs * efficiently. @@ -959,8 +949,20 @@ int __cpuinit native_cpu_up(unsigned int cpu) return 0; } +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 diff --git a/trunk/arch/x86/kernel/smpboot_64.c b/trunk/arch/x86/kernel/smpboot_64.c index a9cc91127b91..c3e770b0094b 100644 --- a/trunk/arch/x86/kernel/smpboot_64.c +++ b/trunk/arch/x86/kernel/smpboot_64.c @@ -824,12 +824,20 @@ int __cpuinit native_cpu_up(unsigned int cpu) return err; } +extern void impress_friends(void); +extern void smp_checks(void); + /* * Finish the SMP boot. */ void __init native_smp_cpus_done(unsigned int max_cpus) { smp_cleanup_boot(); + + Dprintk("Boot done.\n"); + + impress_friends(); + smp_checks(); setup_ioapic_dest(); check_nmi_watchdog(); }