summaryrefslogtreecommitdiffstats
path: root/arch/x86/kernel/numaq_32.c
diff options
context:
space:
mode:
authorYinghai Lu <yhlu.kernel@gmail.com>2008-06-03 19:25:54 +0200
committerIngo Molnar <mingo@elte.hu>2008-06-04 12:01:06 +0200
commitab530e1f781da4d704892daab2bdd568f473687d (patch)
tree38fd2364225dd8ba8051c77df25457cdaa96833f /arch/x86/kernel/numaq_32.c
parentx86: change propagate_e820_map() back to find_max_pfn(), 32-bit, fix (diff)
downloadlinux-ab530e1f781da4d704892daab2bdd568f473687d.tar.xz
linux-ab530e1f781da4d704892daab2bdd568f473687d.zip
x86: early check if a system is numaq
so we could fall back to one node numa. Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/numaq_32.c')
-rw-r--r--arch/x86/kernel/numaq_32.c24
1 files changed, 19 insertions, 5 deletions
diff --git a/arch/x86/kernel/numaq_32.c b/arch/x86/kernel/numaq_32.c
index e65281b1634b..922be66668b8 100644
--- a/arch/x86/kernel/numaq_32.c
+++ b/arch/x86/kernel/numaq_32.c
@@ -31,9 +31,12 @@
#include <asm/numaq.h>
#include <asm/topology.h>
#include <asm/processor.h>
+#include <asm/mpspec.h>
#define MB_TO_PAGES(addr) ((addr) << (20 - PAGE_SHIFT))
+int found_numaq;
+
/*
* Function: smp_dump_qct()
*
@@ -67,13 +70,24 @@ static void __init smp_dump_qct(void)
}
}
-/*
- * Unlike Summit, we don't really care to let the NUMA-Q
- * fall back to flat mode. Don't compile for NUMA-Q
- * unless you really need it!
- */
+static __init void early_check_numaq(void)
+{
+ /*
+ * Find possible boot-time SMP configuration:
+ */
+ early_find_smp_config();
+ /*
+ * get boot-time SMP configuration:
+ */
+ if (smp_found_config)
+ early_get_smp_config();
+}
+
int __init get_memcfg_numaq(void)
{
+ early_check_numaq();
+ if (!found_numaq)
+ return 0;
smp_dump_qct();
return 1;
}