VServer 1.9.2 (patch-2.6.8.1-vs1.9.2.diff)
[linux-2.6.git] / arch / i386 / mach-visws / mpparse.c
index dd1525a..fa80064 100644 (file)
@@ -57,12 +57,12 @@ void __init MP_processor_info (struct mpc_config_processor *m)
                boot_cpu_logical_apicid = logical_apicid;
        }
 
-       if (m->mpc_apicid > MAX_APICS) {
+       ver = m->mpc_apicver;
+       if ((ver >= 0x14 && m->mpc_apicid >= 0xff) || m->mpc_apicid >= 0xf) {
                printk(KERN_ERR "Processor #%d INVALID. (Max ID: %d).\n",
                        m->mpc_apicid, MAX_APICS);
                return;
        }
-       ver = m->mpc_apicver;
 
        apic_cpus = apicid_to_cpu_present(m->mpc_apicid);
        physids_or(phys_cpu_present_map, phys_cpu_present_map, apic_cpus);