diff options
author | Yinghai Lu <yhlu.kernel@gmail.com> | 2008-06-08 21:29:22 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-06-10 05:32:09 -0400 |
commit | e0da33646826b66ef933d47ea2fb7a693fd849bf (patch) | |
tree | 398d86b96531e574c4710ea1538806b7e0ae0fef /arch/x86/kernel/setup_32.c | |
parent | c3ff01672a23fabb40d4b80ff25a845582fd07c2 (diff) |
x86: introduce max_physical_apicid for bigsmp switching
a multi-socket test-system with 3 or 4 ioapics, when 4 dualcore cpus or
2 quadcore cpus installed, needs to switch to bigsmp or physflat.
CPU apic id is [4,11] instead of [0,7], and we need to check max apic
id instead of cpu numbers.
also add check for 32 bit when acpi is not compiled in or acpi=off.
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/setup_32.c')
-rw-r--r-- | arch/x86/kernel/setup_32.c | 11 |
1 files changed, 5 insertions, 6 deletions
diff --git a/arch/x86/kernel/setup_32.c b/arch/x86/kernel/setup_32.c index ee1ccdbd7100..be1a99003677 100644 --- a/arch/x86/kernel/setup_32.c +++ b/arch/x86/kernel/setup_32.c | |||
@@ -838,18 +838,17 @@ void __init setup_arch(char **cmdline_p) | |||
838 | 838 | ||
839 | #ifdef CONFIG_ACPI | 839 | #ifdef CONFIG_ACPI |
840 | acpi_boot_init(); | 840 | acpi_boot_init(); |
841 | 841 | #endif | |
842 | #if defined(CONFIG_X86_MPPARSE) || defined(CONFIG_X86_VISWS) | ||
843 | if (smp_found_config) | ||
844 | get_smp_config(); | ||
845 | #endif | ||
842 | #if defined(CONFIG_SMP) && defined(CONFIG_X86_PC) | 846 | #if defined(CONFIG_SMP) && defined(CONFIG_X86_PC) |
843 | if (def_to_bigsmp) | 847 | if (def_to_bigsmp) |
844 | printk(KERN_WARNING "More than 8 CPUs detected and " | 848 | printk(KERN_WARNING "More than 8 CPUs detected and " |
845 | "CONFIG_X86_PC cannot handle it.\nUse " | 849 | "CONFIG_X86_PC cannot handle it.\nUse " |
846 | "CONFIG_X86_GENERICARCH or CONFIG_X86_BIGSMP.\n"); | 850 | "CONFIG_X86_GENERICARCH or CONFIG_X86_BIGSMP.\n"); |
847 | #endif | 851 | #endif |
848 | #endif | ||
849 | #if defined(CONFIG_X86_MPPARSE) || defined(CONFIG_X86_VISWS) | ||
850 | if (smp_found_config) | ||
851 | get_smp_config(); | ||
852 | #endif | ||
853 | 852 | ||
854 | e820_setup_gap(); | 853 | e820_setup_gap(); |
855 | e820_mark_nosave_regions(max_low_pfn); | 854 | e820_mark_nosave_regions(max_low_pfn); |