diff options
author | Paul Mackerras <paulus@samba.org> | 2006-02-28 16:35:24 +1100 |
---|---|---|
committer | Paul Mackerras <paulus@samba.org> | 2006-02-28 16:35:24 +1100 |
commit | 6749c5507388f3fc3719f57a54b540ee83f6661a (patch) | |
tree | c069f990f86b020a14b50759d0c75475eedde186 /arch/i386/kernel/mpparse.c | |
parent | 2cf82c0256b198ae28c465f2c4d7c12c836ea5ea (diff) | |
parent | 56ec6462af9cba56a04439154e5768672d6f390f (diff) | |
download | blackbird-op-linux-6749c5507388f3fc3719f57a54b540ee83f6661a.tar.gz blackbird-op-linux-6749c5507388f3fc3719f57a54b540ee83f6661a.zip |
Merge ../powerpc-merge
Diffstat (limited to 'arch/i386/kernel/mpparse.c')
-rw-r--r-- | arch/i386/kernel/mpparse.c | 10 |
1 files changed, 8 insertions, 2 deletions
diff --git a/arch/i386/kernel/mpparse.c b/arch/i386/kernel/mpparse.c index e7609abf3796..e6e2f43db85e 100644 --- a/arch/i386/kernel/mpparse.c +++ b/arch/i386/kernel/mpparse.c @@ -915,6 +915,7 @@ void __init mp_register_ioapic ( u32 gsi_base) { int idx = 0; + int tmpid; if (nr_ioapics >= MAX_IO_APICS) { printk(KERN_ERR "ERROR: Max # of I/O APICs (%d) exceeded " @@ -935,9 +936,14 @@ void __init mp_register_ioapic ( set_fixmap_nocache(FIX_IO_APIC_BASE_0 + idx, address); if ((boot_cpu_data.x86_vendor == X86_VENDOR_INTEL) && (boot_cpu_data.x86 < 15)) - mp_ioapics[idx].mpc_apicid = io_apic_get_unique_id(idx, id); + tmpid = io_apic_get_unique_id(idx, id); else - mp_ioapics[idx].mpc_apicid = id; + tmpid = id; + if (tmpid == -1) { + nr_ioapics--; + return; + } + mp_ioapics[idx].mpc_apicid = tmpid; mp_ioapics[idx].mpc_apicver = io_apic_get_version(idx); /* |