diff options
author | Yinghai Lu <yhlu.kernel@gmail.com> | 2008-06-09 18:11:36 -0700 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-08 10:36:04 +0200 |
commit | b1f006b65c12b85df81f12c1073ad18fd26f4a16 (patch) | |
tree | ac8705bfbb8178142cf79fc19b0bb873c2f3e07c /arch | |
parent | b20d70b70e9aa854c47d2af10659f1033b6d69bb (diff) |
x86: make generic arch support NUMAQ, fix #2
we are checking mptable early for numaq, so don't need to reserve_bootmem
for it. bootmem is not there yet.
do the same thing as 64-bit.
found it on 64g above system from 64-bit kernel kexec to 32 bit kernel with
numaq support.
Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com>
Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch')
-rw-r--r-- | arch/x86/kernel/mpparse.c | 9 |
1 files changed, 5 insertions, 4 deletions
diff --git a/arch/x86/kernel/mpparse.c b/arch/x86/kernel/mpparse.c index 6ae60909b60..7ac1b689b70 100644 --- a/arch/x86/kernel/mpparse.c +++ b/arch/x86/kernel/mpparse.c @@ -853,9 +853,13 @@ static int __init smp_scan_config(unsigned long base, unsigned long length, smp_found_config = 1; #endif mpf_found = mpf; -#ifdef CONFIG_X86_32 + printk(KERN_INFO "found SMP MP-table at [%p] %08lx\n", mpf, virt_to_phys(mpf)); + + if (!reserve) + return 1; +#ifdef CONFIG_X86_32 reserve_bootmem(virt_to_phys(mpf), PAGE_SIZE, BOOTMEM_DEFAULT); if (mpf->mpf_physptr) { @@ -877,9 +881,6 @@ static int __init smp_scan_config(unsigned long base, unsigned long length, } #else - if (!reserve) - return 1; - reserve_bootmem_generic(virt_to_phys(mpf), PAGE_SIZE, BOOTMEM_DEFAULT); if (mpf->mpf_physptr) |