patch-2.4.20 linux-2.4.20/arch/i386/kernel/mpparse.c
Next file: linux-2.4.20/arch/i386/kernel/pci-dma.c
Previous file: linux-2.4.20/arch/i386/kernel/irq.c
Back to the patch index
Back to the overall index
- Lines: 88
- Date:
Thu Nov 28 15:53:09 2002
- Orig file:
linux-2.4.19/arch/i386/kernel/mpparse.c
- Orig date:
Fri Aug 2 17:39:42 2002
diff -urN linux-2.4.19/arch/i386/kernel/mpparse.c linux-2.4.20/arch/i386/kernel/mpparse.c
@@ -26,6 +26,7 @@
#include <asm/mtrr.h>
#include <asm/mpspec.h>
#include <asm/pgalloc.h>
+#include <asm/smpboot.h>
/* Have we found an MP table */
int smp_found_config;
@@ -65,6 +66,8 @@
/* Bitmask of physically existing CPUs */
unsigned long phys_cpu_present_map;
+unsigned char esr_disable = 0;
+
/*
* Intel MP BIOS table parsing routines:
*/
@@ -115,6 +118,8 @@
case 0x0F:
if (model == 0x00)
return("Pentium 4(tm)");
+ if (model == 0x02)
+ return("Pentium 4(tm) XEON(tm)");
if (model == 0x0F)
return("Special controller");
}
@@ -145,7 +150,7 @@
return;
logical_apicid = m->mpc_apicid;
- if (clustered_apic_mode) {
+ if (clustered_apic_mode == CLUSTERED_APIC_NUMAQ) {
quad = translation_table[mpc_record]->trans_quad;
logical_apicid = (quad << 4) +
(m->mpc_apicid ? m->mpc_apicid << 1 : 1);
@@ -221,11 +226,12 @@
if (m->mpc_apicid > MAX_APICS) {
printk("Processor #%d INVALID. (Max ID: %d).\n",
m->mpc_apicid, MAX_APICS);
+ --num_processors;
return;
}
ver = m->mpc_apicver;
- if (clustered_apic_mode) {
+ if (clustered_apic_mode == CLUSTERED_APIC_NUMAQ) {
phys_cpu_present_map |= (logical_apicid&0xf) << (4*quad);
} else {
phys_cpu_present_map |= 1 << m->mpc_apicid;
@@ -248,7 +254,7 @@
memcpy(str, m->mpc_bustype, 6);
str[6] = 0;
- if (clustered_apic_mode) {
+ if (clustered_apic_mode == CLUSTERED_APIC_NUMAQ) {
quad = translation_table[mpc_record]->trans_quad;
mp_bus_id_to_node[m->mpc_busid] = quad;
mp_bus_id_to_local[m->mpc_busid] = translation_table[mpc_record]->trans_local;
@@ -433,7 +439,7 @@
if (!have_acpi_tables)
mp_lapic_addr = mpc->mpc_lapic;
- if (clustered_apic_mode && mpc->mpc_oemptr) {
+ if ((clustered_apic_mode == CLUSTERED_APIC_NUMAQ) && mpc->mpc_oemptr) {
/* We need to process the oem mpc tables to tell us which quad things are in ... */
mpc_record = 0;
smp_read_mpc_oem((struct mp_config_oemtable *) mpc->mpc_oemptr, mpc->mpc_oemsize);
@@ -502,6 +508,11 @@
}
++mpc_record;
}
+
+ if (clustered_apic_mode){
+ esr_disable = 1;
+ }
+
if (!num_processors)
printk(KERN_ERR "SMP mptable: no processors registered!\n");
return num_processors;
@@ -815,7 +826,7 @@
/*
* The Visual Workstation is Intel MP compliant in the hardware
- * sense, but it doesnt have a BIOS(-configuration table).
+ * sense, but it doesn't have a BIOS(-configuration table).
* No problem for Linux.
*/
void __init find_visws_smp(void)
FUNET's LINUX-ADM group, linux-adm@nic.funet.fi
TCL-scripts by Sam Shen (who was at: slshen@lbl.gov)