diff options
author | Glauber de Oliveira Costa <gcosta@redhat.com> | 2008-03-19 13:25:29 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-04-17 11:41:01 -0400 |
commit | f68e00a32b4f5a2881c3a39d71cc2c22e92f1d99 (patch) | |
tree | 5cf8e7cc674b388c15d211b0433313ffb0f9000e /arch/x86/kernel | |
parent | 693d4b8a6429af7f2029df20a59e22f4d752e141 (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>
Diffstat (limited to 'arch/x86/kernel')
-rw-r--r-- | arch/x86/kernel/smpboot.c | 4 | ||||
-rw-r--r-- | arch/x86/kernel/smpboot_32.c | 22 | ||||
-rw-r--r-- | arch/x86/kernel/smpboot_64.c | 8 |
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 | ||
791 | extern void impress_friends(void); | ||
792 | extern 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 | ||
952 | extern void impress_friends(void); | ||
953 | extern void smp_checks(void); | ||
954 | |||
962 | void __init native_smp_cpus_done(unsigned int max_cpus) | 955 | void __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 | ||
827 | extern void impress_friends(void); | ||
828 | extern void smp_checks(void); | ||
829 | |||
827 | /* | 830 | /* |
828 | * Finish the SMP boot. | 831 | * Finish the SMP boot. |
829 | */ | 832 | */ |
830 | void __init native_smp_cpus_done(unsigned int max_cpus) | 833 | void __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 | } |