aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel
diff options
context:
space:
mode:
authorYinghai Lu <yhlu.kernel@gmail.com>2008-06-09 21:11:36 -0400
committerIngo Molnar <mingo@elte.hu>2008-07-08 04:36:04 -0400
commitb1f006b65c12b85df81f12c1073ad18fd26f4a16 (patch)
treeac8705bfbb8178142cf79fc19b0bb873c2f3e07c /arch/x86/kernel
parentb20d70b70e9aa854c47d2af10659f1033b6d69bb (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')
-rw-r--r--arch/x86/kernel/mpparse.c9
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)