aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGlauber de Oliveira Costa <gcosta@redhat.com>2008-03-19 13:25:29 -0400
committerIngo Molnar <mingo@elte.hu>2008-04-17 11:41:01 -0400
commitf68e00a32b4f5a2881c3a39d71cc2c22e92f1d99 (patch)
tree5cf8e7cc674b388c15d211b0433313ffb0f9000e
parent693d4b8a6429af7f2029df20a59e22f4d752e141 (diff)
x86: move impress_friends and smp_check to cpus_done
the cpu count is changed accordingly: now, what matters is online cpus. Also, we add those functions for x86_64 Signed-off-by: Glauber Costa <gcosta@redhat.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
-rw-r--r--arch/x86/kernel/smpboot.c4
-rw-r--r--arch/x86/kernel/smpboot_32.c22
-rw-r--r--arch/x86/kernel/smpboot_64.c8
3 files changed, 22 insertions, 12 deletions
diff --git a/arch/x86/kernel/smpboot.c b/arch/x86/kernel/smpboot.c
index ddb94ef37789..6978f1bf6533 100644
--- a/arch/x86/kernel/smpboot.c
+++ b/arch/x86/kernel/smpboot.c
@@ -114,7 +114,7 @@ void smp_checks(void)
114 * approved Athlon 114 * approved Athlon
115 */ 115 */
116 if (tainted & TAINT_UNSAFE_SMP) { 116 if (tainted & TAINT_UNSAFE_SMP) {
117 if (cpus_weight(cpu_present_map)) 117 if (num_online_cpus())
118 printk(KERN_INFO "WARNING: This combination of AMD" 118 printk(KERN_INFO "WARNING: This combination of AMD"
119 "processors is not suitable for SMP.\n"); 119 "processors is not suitable for SMP.\n");
120 else 120 else
@@ -258,7 +258,7 @@ void impress_friends(void)
258 bogosum += cpu_data(cpu).loops_per_jiffy; 258 bogosum += cpu_data(cpu).loops_per_jiffy;
259 printk(KERN_INFO 259 printk(KERN_INFO
260 "Total of %d processors activated (%lu.%02lu BogoMIPS).\n", 260 "Total of %d processors activated (%lu.%02lu BogoMIPS).\n",
261 cpus_weight(cpu_present_map), 261 num_online_cpus(),
262 bogosum/(500000/HZ), 262 bogosum/(500000/HZ),
263 (bogosum/(5000/HZ))%100); 263 (bogosum/(5000/HZ))%100);
264 264
diff --git a/arch/x86/kernel/smpboot_32.c b/arch/x86/kernel/smpboot_32.c
index 361851cdaa97..1736404c3c36 100644
--- a/arch/x86/kernel/smpboot_32.c
+++ b/arch/x86/kernel/smpboot_32.c
@@ -788,8 +788,6 @@ static int __init smp_sanity_check(unsigned max_cpus)
788 return 0; 788 return 0;
789} 789}
790 790
791extern void impress_friends(void);
792extern void smp_checks(void);
793/* 791/*
794 * Cycle through the processors sending APIC IPIs to boot each. 792 * Cycle through the processors sending APIC IPIs to boot each.
795 */ 793 */
@@ -858,14 +856,6 @@ static void __init smp_boot_cpus(unsigned int max_cpus)
858 } 856 }
859 857
860 /* 858 /*
861 * Cleanup possible dangling ends...
862 */
863 smpboot_restore_warm_reset_vector();
864
865 impress_friends();
866
867 smp_checks();
868 /*
869 * construct cpu_sibling_map, so that we can tell sibling CPUs 859 * construct cpu_sibling_map, so that we can tell sibling CPUs
870 * efficiently. 860 * efficiently.
871 */ 861 */
@@ -959,8 +949,20 @@ int __cpuinit native_cpu_up(unsigned int cpu)
959 return 0; 949 return 0;
960} 950}
961 951
952extern void impress_friends(void);
953extern void smp_checks(void);
954
962void __init native_smp_cpus_done(unsigned int max_cpus) 955void __init native_smp_cpus_done(unsigned int max_cpus)
963{ 956{
957 /*
958 * Cleanup possible dangling ends...
959 */
960 smpboot_restore_warm_reset_vector();
961
962 Dprintk("Boot done.\n");
963
964 impress_friends();
965 smp_checks();
964#ifdef CONFIG_X86_IO_APIC 966#ifdef CONFIG_X86_IO_APIC
965 setup_ioapic_dest(); 967 setup_ioapic_dest();
966#endif 968#endif
diff --git a/arch/x86/kernel/smpboot_64.c b/arch/x86/kernel/smpboot_64.c
index a9cc91127b91..c3e770b0094b 100644
--- a/arch/x86/kernel/smpboot_64.c
+++ b/arch/x86/kernel/smpboot_64.c
@@ -824,12 +824,20 @@ int __cpuinit native_cpu_up(unsigned int cpu)
824 return err; 824 return err;
825} 825}
826 826
827extern void impress_friends(void);
828extern void smp_checks(void);
829
827/* 830/*
828 * Finish the SMP boot. 831 * Finish the SMP boot.
829 */ 832 */
830void __init native_smp_cpus_done(unsigned int max_cpus) 833void __init native_smp_cpus_done(unsigned int max_cpus)
831{ 834{
832 smp_cleanup_boot(); 835 smp_cleanup_boot();
836
837 Dprintk("Boot done.\n");
838
839 impress_friends();
840 smp_checks();
833 setup_ioapic_dest(); 841 setup_ioapic_dest();
834 check_nmi_watchdog(); 842 check_nmi_watchdog();
835} 843}