diff options
Diffstat (limited to 'arch/x86/kernel/apic_32.c')
-rw-r--r-- | arch/x86/kernel/apic_32.c | 12 |
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 | */ |
80 | int apic_verbosity; | 80 | int apic_verbosity; |
81 | 81 | ||
82 | int pic_mode; | ||
83 | |||
84 | /* Have we found an MP table */ | ||
85 | int smp_found_config; | ||
86 | |||
82 | static unsigned int calibration_result; | 87 | static unsigned int calibration_result; |
83 | 88 | ||
84 | static int lapic_next_event(unsigned long delta, | 89 | static 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)) { |