diff options
Diffstat (limited to 'arch/x86/kernel/mpparse_64.c')
-rw-r--r-- | arch/x86/kernel/mpparse_64.c | 11 |
1 files changed, 4 insertions, 7 deletions
diff --git a/arch/x86/kernel/mpparse_64.c b/arch/x86/kernel/mpparse_64.c index 269fd46df42c..fb74135f9d0e 100644 --- a/arch/x86/kernel/mpparse_64.c +++ b/arch/x86/kernel/mpparse_64.c | |||
@@ -29,6 +29,7 @@ | |||
29 | #include <asm/io_apic.h> | 29 | #include <asm/io_apic.h> |
30 | #include <asm/proto.h> | 30 | #include <asm/proto.h> |
31 | #include <asm/acpi.h> | 31 | #include <asm/acpi.h> |
32 | #include <asm/bios_ebda.h> | ||
32 | 33 | ||
33 | #include <mach_apic.h> | 34 | #include <mach_apic.h> |
34 | 35 | ||
@@ -641,13 +642,9 @@ static void __init __find_smp_config(unsigned reserve) | |||
641 | * should be fixed. | 642 | * should be fixed. |
642 | */ | 643 | */ |
643 | 644 | ||
644 | address = *(unsigned short *)phys_to_virt(0x40E); | 645 | address = get_bios_ebda(); |
645 | address <<= 4; | 646 | if (address) |
646 | if (smp_scan_config(address, 0x1000, reserve)) | 647 | smp_scan_config(address, 0x1000, reserve); |
647 | return; | ||
648 | |||
649 | /* If we have come this far, we did not find an MP table */ | ||
650 | printk(KERN_INFO "No mptable found.\n"); | ||
651 | } | 648 | } |
652 | 649 | ||
653 | void __init early_find_smp_config(void) | 650 | void __init early_find_smp_config(void) |