mpparse.c (a976c2951d8f376112361830aa7762beff83a205) | mpparse.c (f7750a79568788473c5e8092ee58a52248f34329) |
---|---|
1/* 2 * Intel Multiprocessor Specification 1.1 and 1.4 3 * compliant MP-table parsing routines. 4 * 5 * (c) 1995 Alan Cox, Building #3 <alan@lxorguk.ukuu.org.uk> 6 * (c) 1998, 1999, 2000, 2009 Ingo Molnar <mingo@redhat.com> 7 * (c) 2008 Alexey Starikovskiy <astarikovskiy@suse.de> 8 */ --- 422 unchanged lines hidden (view full) --- 431 432static struct mpf_intel *mpf_found; 433 434static unsigned long __init get_mpc_size(unsigned long physptr) 435{ 436 struct mpc_table *mpc; 437 unsigned long size; 438 | 1/* 2 * Intel Multiprocessor Specification 1.1 and 1.4 3 * compliant MP-table parsing routines. 4 * 5 * (c) 1995 Alan Cox, Building #3 <alan@lxorguk.ukuu.org.uk> 6 * (c) 1998, 1999, 2000, 2009 Ingo Molnar <mingo@redhat.com> 7 * (c) 2008 Alexey Starikovskiy <astarikovskiy@suse.de> 8 */ --- 422 unchanged lines hidden (view full) --- 431 432static struct mpf_intel *mpf_found; 433 434static unsigned long __init get_mpc_size(unsigned long physptr) 435{ 436 struct mpc_table *mpc; 437 unsigned long size; 438 |
439 mpc = early_ioremap(physptr, PAGE_SIZE); | 439 mpc = early_memremap(physptr, PAGE_SIZE); |
440 size = mpc->length; | 440 size = mpc->length; |
441 early_iounmap(mpc, PAGE_SIZE); | 441 early_memunmap(mpc, PAGE_SIZE); |
442 apic_printk(APIC_VERBOSE, " mpc: %lx-%lx\n", physptr, physptr + size); 443 444 return size; 445} 446 447static int __init check_physptr(struct mpf_intel *mpf, unsigned int early) 448{ 449 struct mpc_table *mpc; 450 unsigned long size; 451 452 size = get_mpc_size(mpf->physptr); | 442 apic_printk(APIC_VERBOSE, " mpc: %lx-%lx\n", physptr, physptr + size); 443 444 return size; 445} 446 447static int __init check_physptr(struct mpf_intel *mpf, unsigned int early) 448{ 449 struct mpc_table *mpc; 450 unsigned long size; 451 452 size = get_mpc_size(mpf->physptr); |
453 mpc = early_ioremap(mpf->physptr, size); | 453 mpc = early_memremap(mpf->physptr, size); |
454 /* 455 * Read the physical hardware table. Anything here will 456 * override the defaults. 457 */ 458 if (!smp_read_mpc(mpc, early)) { 459#ifdef CONFIG_X86_LOCAL_APIC 460 smp_found_config = 0; 461#endif 462 pr_err("BIOS bug, MP table errors detected!...\n"); 463 pr_cont("... disabling SMP support. (tell your hw vendor)\n"); | 454 /* 455 * Read the physical hardware table. Anything here will 456 * override the defaults. 457 */ 458 if (!smp_read_mpc(mpc, early)) { 459#ifdef CONFIG_X86_LOCAL_APIC 460 smp_found_config = 0; 461#endif 462 pr_err("BIOS bug, MP table errors detected!...\n"); 463 pr_cont("... disabling SMP support. (tell your hw vendor)\n"); |
464 early_iounmap(mpc, size); | 464 early_memunmap(mpc, size); |
465 return -1; 466 } | 465 return -1; 466 } |
467 early_iounmap(mpc, size); | 467 early_memunmap(mpc, size); |
468 469 if (early) 470 return -1; 471 472#ifdef CONFIG_X86_IO_APIC 473 /* 474 * If there are no explicit MP IRQ entries, then we are 475 * broken. We set up most of the low 16 IO-APIC pins to --- 440 unchanged lines hidden --- | 468 469 if (early) 470 return -1; 471 472#ifdef CONFIG_X86_IO_APIC 473 /* 474 * If there are no explicit MP IRQ entries, then we are 475 * broken. We set up most of the low 16 IO-APIC pins to --- 440 unchanged lines hidden --- |