x86, apic: Don't use logical-flat mode when CPU hotplug may exceed 8 CPUs
commitdd5a2355ad5af18cc8fef4844e51e49197942c3a
authorSuresh Siddha <suresh.b.siddha@intel.com>
Thu, 18 Feb 2010 23:30:55 +0000 (18 15:30 -0800)
committerGreg Kroah-Hartman <gregkh@suse.de>
Thu, 1 Apr 2010 22:58:14 +0000 (1 15:58 -0700)
tree3c9a38a2900c89b1bd85ae335253038325b9ac1a
parent2605c157ed3bb18e66a6a08263448046f77ba5fb
x86, apic: Don't use logical-flat mode when CPU hotplug may exceed 8 CPUs

commit 681ee44d40d7c93b42118320e4620d07d8704fd6 upstream

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.

Signed-off-by: Suresh Siddha <suresh.b.siddha@intel.com>
Acked-by: Shaohui Zheng <shaohui.zheng@intel.com>
Reviewed-by: Yinghai Lu <yinghai@kernel.org>
Signed-off-by: H. Peter Anvin <hpa@zytor.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
arch/x86/kernel/acpi/boot.c
arch/x86/kernel/apic/apic.c
arch/x86/kernel/apic/probe_32.c
arch/x86/kernel/apic/probe_64.c
arch/x86/kernel/mpparse.c
arch/x86/kernel/smpboot.c