aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/apic_32.c
diff options
context:
space:
mode:
authorIngo Molnar <mingo@elte.hu>2008-07-08 05:14:58 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-08 05:14:58 -0400
commit3de352bbd86f890dd0c5e1c09a6a1b0b29e0f8ce (patch)
treed4c5eba8cd2abefd7c9f16d089393f0f5999cf63 /arch/x86/kernel/apic_32.c
parent1b8ba39a3fad9c58532f6dad12c94d6e675be656 (diff)
parent9340e1ccdf7b9b22a2be7f51cd74e8b5e11961bf (diff)
Merge branch 'x86/mpparse' into x86/devel
Conflicts: arch/x86/Kconfig arch/x86/kernel/io_apic_32.c arch/x86/kernel/setup_64.c arch/x86/mm/init_32.c Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/apic_32.c')
-rw-r--r--arch/x86/kernel/apic_32.c12
1 files changed, 10 insertions, 2 deletions
diff --git a/arch/x86/kernel/apic_32.c b/arch/x86/kernel/apic_32.c
index ce4538ebb7fe..570c362eca8c 100644
--- a/arch/x86/kernel/apic_32.c
+++ b/arch/x86/kernel/apic_32.c
@@ -79,6 +79,11 @@ char system_vectors[NR_VECTORS] = { [0 ... NR_VECTORS-1] = SYS_VECTOR_FREE};
79 */ 79 */
80int apic_verbosity; 80int apic_verbosity;
81 81
82int pic_mode;
83
84/* Have we found an MP table */
85int smp_found_config;
86
82static unsigned int calibration_result; 87static unsigned int calibration_result;
83 88
84static int lapic_next_event(unsigned long delta, 89static int lapic_next_event(unsigned long delta,
@@ -1202,7 +1207,7 @@ void __init init_apic_mappings(void)
1202 1207
1203 for (i = 0; i < nr_ioapics; i++) { 1208 for (i = 0; i < nr_ioapics; i++) {
1204 if (smp_found_config) { 1209 if (smp_found_config) {
1205 ioapic_phys = mp_ioapics[i].mpc_apicaddr; 1210 ioapic_phys = mp_ioapics[i].mp_apicaddr;
1206 if (!ioapic_phys) { 1211 if (!ioapic_phys) {
1207 printk(KERN_ERR 1212 printk(KERN_ERR
1208 "WARNING: bogus zero IO-APIC " 1213 "WARNING: bogus zero IO-APIC "
@@ -1517,6 +1522,9 @@ void __cpuinit generic_processor_info(int apicid, int version)
1517 */ 1522 */
1518 cpu = 0; 1523 cpu = 0;
1519 1524
1525 if (apicid > max_physical_apicid)
1526 max_physical_apicid = apicid;
1527
1520 /* 1528 /*
1521 * Would be preferable to switch to bigsmp when CONFIG_HOTPLUG_CPU=y 1529 * Would be preferable to switch to bigsmp when CONFIG_HOTPLUG_CPU=y
1522 * but we need to work other dependencies like SMP_SUSPEND etc 1530 * but we need to work other dependencies like SMP_SUSPEND etc
@@ -1524,7 +1532,7 @@ void __cpuinit generic_processor_info(int apicid, int version)
1524 * if (CPU_HOTPLUG_ENABLED || num_processors > 8) 1532 * if (CPU_HOTPLUG_ENABLED || num_processors > 8)
1525 * - Ashok Raj <ashok.raj@intel.com> 1533 * - Ashok Raj <ashok.raj@intel.com>
1526 */ 1534 */
1527 if (num_processors > 8) { 1535 if (max_physical_apicid >= 8) {
1528 switch (boot_cpu_data.x86_vendor) { 1536 switch (boot_cpu_data.x86_vendor) {
1529 case X86_VENDOR_INTEL: 1537 case X86_VENDOR_INTEL:
1530 if (!APIC_XAPIC(version)) { 1538 if (!APIC_XAPIC(version)) {