diff options
author | Yinghai Lu <yhlu.kernel@gmail.com> | 2008-06-09 21:11:36 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-08 04:36:04 -0400 |
commit | b1f006b65c12b85df81f12c1073ad18fd26f4a16 (patch) | |
tree | ac8705bfbb8178142cf79fc19b0bb873c2f3e07c /arch/x86/kernel/mpparse.c | |
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/x86/kernel/mpparse.c')
-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 6ae60909b601..7ac1b689b70a 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, | |||
853 | smp_found_config = 1; | 853 | smp_found_config = 1; |
854 | #endif | 854 | #endif |
855 | mpf_found = mpf; | 855 | mpf_found = mpf; |
856 | #ifdef CONFIG_X86_32 | 856 | |
857 | printk(KERN_INFO "found SMP MP-table at [%p] %08lx\n", | 857 | printk(KERN_INFO "found SMP MP-table at [%p] %08lx\n", |
858 | mpf, virt_to_phys(mpf)); | 858 | mpf, virt_to_phys(mpf)); |
859 | |||
860 | if (!reserve) | ||
861 | return 1; | ||
862 | #ifdef CONFIG_X86_32 | ||
859 | reserve_bootmem(virt_to_phys(mpf), PAGE_SIZE, | 863 | reserve_bootmem(virt_to_phys(mpf), PAGE_SIZE, |
860 | BOOTMEM_DEFAULT); | 864 | BOOTMEM_DEFAULT); |
861 | if (mpf->mpf_physptr) { | 865 | if (mpf->mpf_physptr) { |
@@ -877,9 +881,6 @@ static int __init smp_scan_config(unsigned long base, unsigned long length, | |||
877 | } | 881 | } |
878 | 882 | ||
879 | #else | 883 | #else |
880 | if (!reserve) | ||
881 | return 1; | ||
882 | |||
883 | reserve_bootmem_generic(virt_to_phys(mpf), PAGE_SIZE, | 884 | reserve_bootmem_generic(virt_to_phys(mpf), PAGE_SIZE, |
884 | BOOTMEM_DEFAULT); | 885 | BOOTMEM_DEFAULT); |
885 | if (mpf->mpf_physptr) | 886 | if (mpf->mpf_physptr) |