diff options
author | Yinghai Lu <yhlu.kernel@gmail.com> | 2008-06-17 18:41:45 -0400 |
---|---|---|
committer | Ingo Molnar <mingo@elte.hu> | 2008-07-08 04:38:47 -0400 |
commit | 1c6e55032e24ff79668581a0f296c278ef7edd4e (patch) | |
tree | 5368ede51192cc0b4413ac8be9ea86bad211187c /arch/x86/kernel/setup_32.c | |
parent | 0699eae140a3eeca976df4e3b7699b1fa3f763cd (diff) |
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.c | 36 |
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 @@ | |||
59 | #include <asm/setup.h> | 59 | #include <asm/setup.h> |
60 | #include <asm/arch_hooks.h> | 60 | #include <asm/arch_hooks.h> |
61 | #include <asm/sections.h> | 61 | #include <asm/sections.h> |
62 | #include <asm/dmi.h> | ||
62 | #include <asm/io_apic.h> | 63 | #include <asm/io_apic.h> |
63 | #include <asm/ist.h> | 64 | #include <asm/ist.h> |
64 | #include <asm/io.h> | 65 | #include <asm/io.h> |
@@ -185,6 +186,12 @@ int bootloader_type; | |||
185 | static unsigned int highmem_pages = -1; | 186 | static unsigned int highmem_pages = -1; |
186 | 187 | ||
187 | /* | 188 | /* |
189 | * Early DMI memory | ||
190 | */ | ||
191 | int dmi_alloc_index; | ||
192 | char dmi_alloc_data[DMI_MAX_DATA]; | ||
193 | |||
194 | /* | ||
188 | * Setup options | 195 | * Setup options |
189 | */ | 196 | */ |
190 | struct screen_info screen_info; | 197 | struct screen_info screen_info; |
@@ -775,6 +782,24 @@ void __init setup_arch(char **cmdline_p) | |||
775 | max_pfn = e820_end_of_ram(); | 782 | max_pfn = e820_end_of_ram(); |
776 | } | 783 | } |
777 | 784 | ||
785 | dmi_scan_machine(); | ||
786 | |||
787 | io_delay_init(); | ||
788 | |||
789 | #ifdef CONFIG_ACPI | ||
790 | /* | ||
791 | * Parse the ACPI tables for possible boot-time SMP configuration. | ||
792 | */ | ||
793 | acpi_boot_table_init(); | ||
794 | #endif | ||
795 | |||
796 | #ifdef CONFIG_ACPI_NUMA | ||
797 | /* | ||
798 | * Parse SRAT to discover nodes. | ||
799 | */ | ||
800 | acpi_numa_init(); | ||
801 | #endif | ||
802 | |||
778 | max_low_pfn = setup_memory(); | 803 | max_low_pfn = setup_memory(); |
779 | 804 | ||
780 | #ifdef CONFIG_ACPI_SLEEP | 805 | #ifdef CONFIG_ACPI_SLEEP |
@@ -841,10 +866,6 @@ void __init setup_arch(char **cmdline_p) | |||
841 | 866 | ||
842 | paravirt_post_allocator_init(); | 867 | paravirt_post_allocator_init(); |
843 | 868 | ||
844 | dmi_scan_machine(); | ||
845 | |||
846 | io_delay_init(); | ||
847 | |||
848 | #ifdef CONFIG_X86_SMP | 869 | #ifdef CONFIG_X86_SMP |
849 | /* | 870 | /* |
850 | * setup to use the early static init tables during kernel startup | 871 | * setup to use the early static init tables during kernel startup |
@@ -861,13 +882,6 @@ void __init setup_arch(char **cmdline_p) | |||
861 | generic_apic_probe(); | 882 | generic_apic_probe(); |
862 | #endif | 883 | #endif |
863 | 884 | ||
864 | #ifdef CONFIG_ACPI | ||
865 | /* | ||
866 | * Parse the ACPI tables for possible boot-time SMP configuration. | ||
867 | */ | ||
868 | acpi_boot_table_init(); | ||
869 | #endif | ||
870 | |||
871 | early_quirks(); | 885 | early_quirks(); |
872 | 886 | ||
873 | #ifdef CONFIG_ACPI | 887 | #ifdef CONFIG_ACPI |