aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/setup_32.c
diff options
context:
space:
mode:
authorYinghai Lu <yhlu.kernel@gmail.com>2008-06-08 21:29:22 -0400
committerIngo Molnar <mingo@elte.hu>2008-06-10 05:32:09 -0400
commite0da33646826b66ef933d47ea2fb7a693fd849bf (patch)
tree398d86b96531e574c4710ea1538806b7e0ae0fef /arch/x86/kernel/setup_32.c
parentc3ff01672a23fabb40d4b80ff25a845582fd07c2 (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.c11
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);