diff options
author | Suresh Siddha <suresh.b.siddha@intel.com> | 2010-02-09 18:01:44 -0800 |
---|---|---|
committer | H. Peter Anvin <hpa@zytor.com> | 2010-02-09 20:51:11 -0800 |
commit | 681ee44d40d7c93b42118320e4620d07d8704fd6 (patch) | |
tree | a6bbec20a6310b8ead96807b2e7f381873b6443b /arch/x86/kernel/mpparse.c | |
parent | cf9db6c41f739a294286847aab1e85f39aef1781 (diff) | |
download | linux-stable-681ee44d40d7c93b42118320e4620d07d8704fd6.tar.gz linux-stable-681ee44d40d7c93b42118320e4620d07d8704fd6.tar.bz2 linux-stable-681ee44d40d7c93b42118320e4620d07d8704fd6.zip |
x86, apic: Don't use logical-flat mode when CPU hotplug may exceed 8 CPUs
We need to fall back from logical-flat APIC mode to physical-flat mode
when we have more than 8 CPUs. However, in the presence of CPU
hotplug(with bios listing not enabled but possible cpus as disabled cpus in
MADT), we have to consider the number of possible CPUs rather than
the number of current CPUs; otherwise we may cross the 8-CPU boundary
when CPUs are added later.
32bit apic code can use more cleanups (like the removal of vendor checks in
32bit default_setup_apic_routing()) and more unifications with 64bit code.
Yinghai has some patches in works already. This patch addresses the boot issue
that is reported in the virtualization guest context.
[ hpa: incorporated function annotation feedback from Yinghai Lu ]
Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
LKML-Reference: <1265767304.2833.19.camel@sbs-t61.sc.intel.com>
Acked-by: Shaohui Zheng <shaohui.zheng@intel.com>
Reviewed-by: Yinghai Lu <yinghai@kernel.org>
Cc: <stable@kernel.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Diffstat (limited to 'arch/x86/kernel/mpparse.c')
-rw-r--r-- | arch/x86/kernel/mpparse.c | 7 |
1 files changed, 0 insertions, 7 deletions
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c index 40b54ceb68b5..a2c1edd2d3ac 100644 --- a/arch/x86/kernel/mpparse.c +++ b/arch/x86/kernel/mpparse.c @@ -359,13 +359,6 @@ static int __init smp_read_mpc(struct mpc_table *mpc, unsigned early) x86_init.mpparse.mpc_record(1); } -#ifdef CONFIG_X86_BIGSMP - generic_bigsmp_probe(); -#endif - - if (apic->setup_apic_routing) - apic->setup_apic_routing(); - if (!num_processors) printk(KERN_ERR "MPTABLE: no processors registered!\n"); return num_processors; |