summaryrefslogtreecommitdiff
path: root/arch/x86/kernel/setup_32.c
diff options
context:
space:
mode:
authorYinghai Lu <yhlu.kernel@gmail.com>2008-06-18 02:41:45 +0400
committerIngo Molnar <mingo@elte.hu>2008-07-08 12:38:47 +0400
commit1c6e55032e24ff79668581a0f296c278ef7edd4e (patch)
tree5368ede51192cc0b4413ac8be9ea86bad211187c /arch/x86/kernel/setup_32.c
parent0699eae140a3eeca976df4e3b7699b1fa3f763cd (diff)
downloadlinux-1c6e55032e24ff79668581a0f296c278ef7edd4e.tar.xz
x86: use acpi_numa_init to parse on 32-bit numa
seperate SRAT finding and parsing from get_memcfg_from_srat, and let getmemcfg_from_srat only handle array from previous step. Signed-off-by: Yinghai Lu <yhlu.kernel@gmail.com> Signed-off-by: Ingo Molnar <mingo@elte.hu>
Diffstat (limited to 'arch/x86/kernel/setup_32.c')
-rw-r--r--arch/x86/kernel/setup_32.c36
1 files changed, 25 insertions, 11 deletions
diff --git a/arch/x86/kernel/setup_32.c b/arch/x86/kernel/setup_32.c
index 90a2b857b4a7..7e06ecd83174 100644
--- a/arch/x86/kernel/setup_32.c
+++ b/arch/x86/kernel/setup_32.c
@@ -59,6 +59,7 @@
#include <asm/setup.h>
#include <asm/arch_hooks.h>
#include <asm/sections.h>
+#include <asm/dmi.h>
#include <asm/io_apic.h>
#include <asm/ist.h>
#include <asm/io.h>
@@ -185,6 +186,12 @@ int bootloader_type;
static unsigned int highmem_pages = -1;
/*
+ * Early DMI memory
+ */
+int dmi_alloc_index;
+char dmi_alloc_data[DMI_MAX_DATA];
+
+/*
* Setup options
*/
struct screen_info screen_info;
@@ -775,6 +782,24 @@ void __init setup_arch(char **cmdline_p)
max_pfn = e820_end_of_ram();
}
+ dmi_scan_machine();
+
+ io_delay_init();
+
+#ifdef CONFIG_ACPI
+ /*
+ * Parse the ACPI tables for possible boot-time SMP configuration.
+ */
+ acpi_boot_table_init();
+#endif
+
+#ifdef CONFIG_ACPI_NUMA
+ /*
+ * Parse SRAT to discover nodes.
+ */
+ acpi_numa_init();
+#endif
+
max_low_pfn = setup_memory();
#ifdef CONFIG_ACPI_SLEEP
@@ -841,10 +866,6 @@ void __init setup_arch(char **cmdline_p)
paravirt_post_allocator_init();
- dmi_scan_machine();
-
- io_delay_init();
-
#ifdef CONFIG_X86_SMP
/*
* setup to use the early static init tables during kernel startup
@@ -861,13 +882,6 @@ void __init setup_arch(char **cmdline_p)
generic_apic_probe();
#endif
-#ifdef CONFIG_ACPI
- /*
- * Parse the ACPI tables for possible boot-time SMP configuration.
- */
- acpi_boot_table_init();
-#endif
-
early_quirks();
#ifdef CONFIG_ACPI