diff options
author | Alexey Starikovskiy <astarikovskiy@suse.de> | 2008-04-04 15:42:27 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-04-17 11:41:35 -0400 |
commit | e950bea8bff23c14eb38dc706aadf197ed81abf4 (patch) | |
tree | 642a45b3eba2c2a13ed407937ddc4a934d8993a2 /arch/x86/kernel/mpparse_32.c | |
parent | f8924e770e048429ae13bfabe1ddad9bf1e64df7 (diff) |
x86: unify smp_read_mpc
Signed-off-by: Alexey Starikovskiy <astarikovskiy@suse.de>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/mpparse_32.c')
-rw-r--r-- | arch/x86/kernel/mpparse_32.c | 25 |
1 files changed, 13 insertions, 12 deletions
diff --git a/arch/x86/kernel/mpparse_32.c b/arch/x86/kernel/mpparse_32.c index 9120573e2616..c185065c3ebc 100644 --- a/arch/x86/kernel/mpparse_32.c +++ b/arch/x86/kernel/mpparse_32.c | |||
@@ -288,39 +288,40 @@ static int __init smp_read_mpc(struct mp_config_table *mpc, unsigned early) | |||
288 | unsigned char *mpt = ((unsigned char *)mpc) + count; | 288 | unsigned char *mpt = ((unsigned char *)mpc) + count; |
289 | 289 | ||
290 | if (memcmp(mpc->mpc_signature, MPC_SIGNATURE, 4)) { | 290 | if (memcmp(mpc->mpc_signature, MPC_SIGNATURE, 4)) { |
291 | printk(KERN_ERR "SMP mptable: bad signature [0x%x]!\n", | 291 | printk(KERN_ERR "MPTABLE: bad signature [%c%c%c%c]!\n", |
292 | *(u32 *) mpc->mpc_signature); | 292 | mpc->mpc_signature[0], mpc->mpc_signature[1], |
293 | mpc->mpc_signature[2], mpc->mpc_signature[3]); | ||
293 | return 0; | 294 | return 0; |
294 | } | 295 | } |
295 | if (mpf_checksum((unsigned char *)mpc, mpc->mpc_length)) { | 296 | if (mpf_checksum((unsigned char *)mpc, mpc->mpc_length)) { |
296 | printk(KERN_ERR "SMP mptable: checksum error!\n"); | 297 | printk(KERN_ERR "MPTABLE: checksum error!\n"); |
297 | return 0; | 298 | return 0; |
298 | } | 299 | } |
299 | if (mpc->mpc_spec != 0x01 && mpc->mpc_spec != 0x04) { | 300 | if (mpc->mpc_spec != 0x01 && mpc->mpc_spec != 0x04) { |
300 | printk(KERN_ERR "SMP mptable: bad table version (%d)!!\n", | 301 | printk(KERN_ERR "MPTABLE: bad table version (%d)!!\n", |
301 | mpc->mpc_spec); | 302 | mpc->mpc_spec); |
302 | return 0; | 303 | return 0; |
303 | } | 304 | } |
304 | if (!mpc->mpc_lapic) { | 305 | if (!mpc->mpc_lapic) { |
305 | printk(KERN_ERR "SMP mptable: null local APIC address!\n"); | 306 | printk(KERN_ERR "MPTABLE: null local APIC address!\n"); |
306 | return 0; | 307 | return 0; |
307 | } | 308 | } |
308 | memcpy(oem, mpc->mpc_oem, 8); | 309 | memcpy(oem, mpc->mpc_oem, 8); |
309 | oem[8] = 0; | 310 | oem[8] = 0; |
310 | printk(KERN_INFO "OEM ID: %s ", oem); | 311 | printk(KERN_INFO "MPTABLE: OEM ID: %s ", oem); |
311 | 312 | ||
312 | memcpy(str, mpc->mpc_productid, 12); | 313 | memcpy(str, mpc->mpc_productid, 12); |
313 | str[12] = 0; | 314 | str[12] = 0; |
314 | printk("Product ID: %s ", str); | 315 | printk("Product ID: %s ", str); |
315 | 316 | ||
317 | #ifdef CONFIG_X86_32 | ||
316 | mps_oem_check(mpc, oem, str); | 318 | mps_oem_check(mpc, oem, str); |
319 | #endif | ||
320 | printk(KERN_INFO "MPTABLE: Product ID: %s ", str); | ||
317 | 321 | ||
318 | printk("APIC at: 0x%X\n", mpc->mpc_lapic); | 322 | printk(KERN_INFO "MPTABLE: APIC at: 0x%X\n", mpc->mpc_lapic); |
319 | 323 | ||
320 | /* | 324 | /* save the local APIC address, it might be non-default */ |
321 | * Save the local APIC address (it might be non-default) -- but only | ||
322 | * if we're not using ACPI. | ||
323 | */ | ||
324 | if (!acpi_lapic) | 325 | if (!acpi_lapic) |
325 | mp_lapic_addr = mpc->mpc_lapic; | 326 | mp_lapic_addr = mpc->mpc_lapic; |
326 | 327 | ||
@@ -399,7 +400,7 @@ static int __init smp_read_mpc(struct mp_config_table *mpc, unsigned early) | |||
399 | } | 400 | } |
400 | setup_apic_routing(); | 401 | setup_apic_routing(); |
401 | if (!num_processors) | 402 | if (!num_processors) |
402 | printk(KERN_ERR "SMP mptable: no processors registered!\n"); | 403 | printk(KERN_ERR "MPTABLE: no processors registered!\n"); |
403 | return num_processors; | 404 | return num_processors; |
404 | } | 405 | } |
405 | 406 | ||