diff options
Diffstat (limited to 'arch/x86/kernel/numaq_32.c')
-rw-r--r-- | arch/x86/kernel/numaq_32.c | 38 |
1 files changed, 18 insertions, 20 deletions
diff --git a/arch/x86/kernel/numaq_32.c b/arch/x86/kernel/numaq_32.c index 0deea37a53cf..f2191d4f2717 100644 --- a/arch/x86/kernel/numaq_32.c +++ b/arch/x86/kernel/numaq_32.c | |||
@@ -117,16 +117,15 @@ static inline int generate_logical_apicid(int quad, int phys_apicid) | |||
117 | } | 117 | } |
118 | 118 | ||
119 | /* x86_quirks member */ | 119 | /* x86_quirks member */ |
120 | static int mpc_apic_id(struct mpc_config_processor *m) | 120 | static int mpc_apic_id(struct mpc_cpu *m) |
121 | { | 121 | { |
122 | int quad = translation_table[mpc_record]->trans_quad; | 122 | int quad = translation_table[mpc_record]->trans_quad; |
123 | int logical_apicid = generate_logical_apicid(quad, m->mpc_apicid); | 123 | int logical_apicid = generate_logical_apicid(quad, m->apicid); |
124 | 124 | ||
125 | printk(KERN_DEBUG "Processor #%d %u:%u APIC version %d (quad %d, apic %d)\n", | 125 | printk(KERN_DEBUG "Processor #%d %u:%u APIC version %d (quad %d, apic %d)\n", |
126 | m->mpc_apicid, | 126 | m->apicid, (m->cpufeature & CPU_FAMILY_MASK) >> 8, |
127 | (m->mpc_cpufeature & CPU_FAMILY_MASK) >> 8, | 127 | (m->cpufeature & CPU_MODEL_MASK) >> 4, |
128 | (m->mpc_cpufeature & CPU_MODEL_MASK) >> 4, | 128 | m->apicver, quad, logical_apicid); |
129 | m->mpc_apicver, quad, logical_apicid); | ||
130 | return logical_apicid; | 129 | return logical_apicid; |
131 | } | 130 | } |
132 | 131 | ||
@@ -135,26 +134,26 @@ int mp_bus_id_to_node[MAX_MP_BUSSES]; | |||
135 | int mp_bus_id_to_local[MAX_MP_BUSSES]; | 134 | int mp_bus_id_to_local[MAX_MP_BUSSES]; |
136 | 135 | ||
137 | /* x86_quirks member */ | 136 | /* x86_quirks member */ |
138 | static void mpc_oem_bus_info(struct mpc_config_bus *m, char *name) | 137 | static void mpc_oem_bus_info(struct mpc_bus *m, char *name) |
139 | { | 138 | { |
140 | int quad = translation_table[mpc_record]->trans_quad; | 139 | int quad = translation_table[mpc_record]->trans_quad; |
141 | int local = translation_table[mpc_record]->trans_local; | 140 | int local = translation_table[mpc_record]->trans_local; |
142 | 141 | ||
143 | mp_bus_id_to_node[m->mpc_busid] = quad; | 142 | mp_bus_id_to_node[m->busid] = quad; |
144 | mp_bus_id_to_local[m->mpc_busid] = local; | 143 | mp_bus_id_to_local[m->busid] = local; |
145 | printk(KERN_INFO "Bus #%d is %s (node %d)\n", | 144 | printk(KERN_INFO "Bus #%d is %s (node %d)\n", |
146 | m->mpc_busid, name, quad); | 145 | m->busid, name, quad); |
147 | } | 146 | } |
148 | 147 | ||
149 | int quad_local_to_mp_bus_id [NR_CPUS/4][4]; | 148 | int quad_local_to_mp_bus_id [NR_CPUS/4][4]; |
150 | 149 | ||
151 | /* x86_quirks member */ | 150 | /* x86_quirks member */ |
152 | static void mpc_oem_pci_bus(struct mpc_config_bus *m) | 151 | static void mpc_oem_pci_bus(struct mpc_bus *m) |
153 | { | 152 | { |
154 | int quad = translation_table[mpc_record]->trans_quad; | 153 | int quad = translation_table[mpc_record]->trans_quad; |
155 | int local = translation_table[mpc_record]->trans_local; | 154 | int local = translation_table[mpc_record]->trans_local; |
156 | 155 | ||
157 | quad_local_to_mp_bus_id[quad][local] = m->mpc_busid; | 156 | quad_local_to_mp_bus_id[quad][local] = m->busid; |
158 | } | 157 | } |
159 | 158 | ||
160 | static void __init MP_translation_info(struct mpc_config_translation *m) | 159 | static void __init MP_translation_info(struct mpc_config_translation *m) |
@@ -186,7 +185,7 @@ static int __init mpf_checksum(unsigned char *mp, int len) | |||
186 | * Read/parse the MPC oem tables | 185 | * Read/parse the MPC oem tables |
187 | */ | 186 | */ |
188 | 187 | ||
189 | static void __init smp_read_mpc_oem(struct mp_config_oemtable *oemtable, | 188 | static void __init smp_read_mpc_oem(struct mpc_oemtable *oemtable, |
190 | unsigned short oemsize) | 189 | unsigned short oemsize) |
191 | { | 190 | { |
192 | int count = sizeof(*oemtable); /* the header size */ | 191 | int count = sizeof(*oemtable); /* the header size */ |
@@ -195,18 +194,18 @@ static void __init smp_read_mpc_oem(struct mp_config_oemtable *oemtable, | |||
195 | mpc_record = 0; | 194 | mpc_record = 0; |
196 | printk(KERN_INFO "Found an OEM MPC table at %8p - parsing it ... \n", | 195 | printk(KERN_INFO "Found an OEM MPC table at %8p - parsing it ... \n", |
197 | oemtable); | 196 | oemtable); |
198 | if (memcmp(oemtable->oem_signature, MPC_OEM_SIGNATURE, 4)) { | 197 | if (memcmp(oemtable->signature, MPC_OEM_SIGNATURE, 4)) { |
199 | printk(KERN_WARNING | 198 | printk(KERN_WARNING |
200 | "SMP mpc oemtable: bad signature [%c%c%c%c]!\n", | 199 | "SMP mpc oemtable: bad signature [%c%c%c%c]!\n", |
201 | oemtable->oem_signature[0], oemtable->oem_signature[1], | 200 | oemtable->signature[0], oemtable->signature[1], |
202 | oemtable->oem_signature[2], oemtable->oem_signature[3]); | 201 | oemtable->signature[2], oemtable->signature[3]); |
203 | return; | 202 | return; |
204 | } | 203 | } |
205 | if (mpf_checksum((unsigned char *)oemtable, oemtable->oem_length)) { | 204 | if (mpf_checksum((unsigned char *)oemtable, oemtable->length)) { |
206 | printk(KERN_WARNING "SMP oem mptable: checksum error!\n"); | 205 | printk(KERN_WARNING "SMP oem mptable: checksum error!\n"); |
207 | return; | 206 | return; |
208 | } | 207 | } |
209 | while (count < oemtable->oem_length) { | 208 | while (count < oemtable->length) { |
210 | switch (*oemptr) { | 209 | switch (*oemptr) { |
211 | case MP_TRANSLATION: | 210 | case MP_TRANSLATION: |
212 | { | 211 | { |
@@ -260,8 +259,7 @@ static struct x86_quirks numaq_x86_quirks __initdata = { | |||
260 | .update_genapic = numaq_update_genapic, | 259 | .update_genapic = numaq_update_genapic, |
261 | }; | 260 | }; |
262 | 261 | ||
263 | void numaq_mps_oem_check(struct mp_config_table *mpc, char *oem, | 262 | void numaq_mps_oem_check(struct mpc_table *mpc, char *oem, char *productid) |
264 | char *productid) | ||
265 | { | 263 | { |
266 | if (strncmp(oem, "IBM NUMA", 8)) | 264 | if (strncmp(oem, "IBM NUMA", 8)) |
267 | printk("Warning! Not a NUMA-Q system!\n"); | 265 | printk("Warning! Not a NUMA-Q system!\n"); |