diff options
-rw-r--r-- | arch/x86_64/mm/srat.c | 6 | ||||
-rw-r--r-- | drivers/acpi/numa.c | 20 | ||||
-rw-r--r-- | include/linux/acpi.h | 2 |
3 files changed, 13 insertions, 15 deletions
diff --git a/arch/x86_64/mm/srat.c b/arch/x86_64/mm/srat.c index a126cb73928b..0e0725db20b7 100644 --- a/arch/x86_64/mm/srat.c +++ b/arch/x86_64/mm/srat.c | |||
@@ -394,6 +394,9 @@ int __init acpi_scan_nodes(unsigned long start, unsigned long end) | |||
394 | { | 394 | { |
395 | int i; | 395 | int i; |
396 | 396 | ||
397 | if (acpi_numa <= 0) | ||
398 | return -1; | ||
399 | |||
397 | /* First clean up the node list */ | 400 | /* First clean up the node list */ |
398 | for (i = 0; i < MAX_NUMNODES; i++) { | 401 | for (i = 0; i < MAX_NUMNODES; i++) { |
399 | cutoff_node(i, start, end); | 402 | cutoff_node(i, start, end); |
@@ -403,9 +406,6 @@ int __init acpi_scan_nodes(unsigned long start, unsigned long end) | |||
403 | } | 406 | } |
404 | } | 407 | } |
405 | 408 | ||
406 | if (acpi_numa <= 0) | ||
407 | return -1; | ||
408 | |||
409 | if (!nodes_cover_memory()) { | 409 | if (!nodes_cover_memory()) { |
410 | bad_srat(); | 410 | bad_srat(); |
411 | return -1; | 411 | return -1; |
diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c index 0c9f15c54e8c..6c44b522f4d3 100644 --- a/drivers/acpi/numa.c +++ b/drivers/acpi/numa.c | |||
@@ -40,9 +40,9 @@ static nodemask_t nodes_found_map = NODE_MASK_NONE; | |||
40 | #define NID_INVAL -1 | 40 | #define NID_INVAL -1 |
41 | 41 | ||
42 | /* maps to convert between proximity domain and logical node ID */ | 42 | /* maps to convert between proximity domain and logical node ID */ |
43 | static int pxm_to_node_map[MAX_PXM_DOMAINS] | 43 | static int __cpuinitdata pxm_to_node_map[MAX_PXM_DOMAINS] |
44 | = { [0 ... MAX_PXM_DOMAINS - 1] = NID_INVAL }; | 44 | = { [0 ... MAX_PXM_DOMAINS - 1] = NID_INVAL }; |
45 | static int node_to_pxm_map[MAX_NUMNODES] | 45 | static int __cpuinitdata node_to_pxm_map[MAX_NUMNODES] |
46 | = { [0 ... MAX_NUMNODES - 1] = PXM_INVAL }; | 46 | = { [0 ... MAX_NUMNODES - 1] = PXM_INVAL }; |
47 | 47 | ||
48 | int pxm_to_node(int pxm) | 48 | int pxm_to_node(int pxm) |
@@ -83,7 +83,8 @@ void __cpuinit acpi_unmap_pxm_to_node(int node) | |||
83 | node_clear(node, nodes_found_map); | 83 | node_clear(node, nodes_found_map); |
84 | } | 84 | } |
85 | 85 | ||
86 | void __init acpi_table_print_srat_entry(struct acpi_subtable_header * header) | 86 | static void __init |
87 | acpi_table_print_srat_entry(struct acpi_subtable_header *header) | ||
87 | { | 88 | { |
88 | 89 | ||
89 | ACPI_FUNCTION_NAME("acpi_table_print_srat_entry"); | 90 | ACPI_FUNCTION_NAME("acpi_table_print_srat_entry"); |
@@ -200,7 +201,7 @@ static int __init acpi_parse_srat(struct acpi_table_header *table) | |||
200 | return 0; | 201 | return 0; |
201 | } | 202 | } |
202 | 203 | ||
203 | int __init | 204 | static int __init |
204 | acpi_table_parse_srat(enum acpi_srat_type id, | 205 | acpi_table_parse_srat(enum acpi_srat_type id, |
205 | acpi_table_entry_handler handler, unsigned int max_entries) | 206 | acpi_table_entry_handler handler, unsigned int max_entries) |
206 | { | 207 | { |
@@ -211,14 +212,13 @@ acpi_table_parse_srat(enum acpi_srat_type id, | |||
211 | 212 | ||
212 | int __init acpi_numa_init(void) | 213 | int __init acpi_numa_init(void) |
213 | { | 214 | { |
214 | int result; | ||
215 | |||
216 | /* SRAT: Static Resource Affinity Table */ | 215 | /* SRAT: Static Resource Affinity Table */ |
217 | if (!acpi_table_parse(ACPI_SIG_SRAT, acpi_parse_srat)) { | 216 | if (!acpi_table_parse(ACPI_SIG_SRAT, acpi_parse_srat)) { |
218 | result = acpi_table_parse_srat(ACPI_SRAT_TYPE_CPU_AFFINITY, | 217 | acpi_table_parse_srat(ACPI_SRAT_TYPE_CPU_AFFINITY, |
219 | acpi_parse_processor_affinity, | 218 | acpi_parse_processor_affinity, NR_CPUS); |
220 | NR_CPUS); | 219 | acpi_table_parse_srat(ACPI_SRAT_TYPE_MEMORY_AFFINITY, |
221 | result = acpi_table_parse_srat(ACPI_SRAT_TYPE_MEMORY_AFFINITY, acpi_parse_memory_affinity, NR_NODE_MEMBLKS); // IA64 specific | 220 | acpi_parse_memory_affinity, |
221 | NR_NODE_MEMBLKS); | ||
222 | } | 222 | } |
223 | 223 | ||
224 | /* SLIT: System Locality Information Table */ | 224 | /* SLIT: System Locality Information Table */ |
diff --git a/include/linux/acpi.h b/include/linux/acpi.h index dc234c508a6f..e88b62e6b3aa 100644 --- a/include/linux/acpi.h +++ b/include/linux/acpi.h | |||
@@ -88,10 +88,8 @@ int acpi_table_parse (char *id, acpi_table_handler handler); | |||
88 | int __init acpi_table_parse_entries(char *id, unsigned long table_size, | 88 | int __init acpi_table_parse_entries(char *id, unsigned long table_size, |
89 | int entry_id, acpi_table_entry_handler handler, unsigned int max_entries); | 89 | int entry_id, acpi_table_entry_handler handler, unsigned int max_entries); |
90 | int acpi_table_parse_madt (enum acpi_madt_type id, acpi_table_entry_handler handler, unsigned int max_entries); | 90 | int acpi_table_parse_madt (enum acpi_madt_type id, acpi_table_entry_handler handler, unsigned int max_entries); |
91 | int acpi_table_parse_srat (enum acpi_srat_type id, acpi_table_entry_handler handler, unsigned int max_entries); | ||
92 | int acpi_parse_mcfg (struct acpi_table_header *header); | 91 | int acpi_parse_mcfg (struct acpi_table_header *header); |
93 | void acpi_table_print_madt_entry (struct acpi_subtable_header *madt); | 92 | void acpi_table_print_madt_entry (struct acpi_subtable_header *madt); |
94 | void acpi_table_print_srat_entry (struct acpi_subtable_header *srat); | ||
95 | 93 | ||
96 | /* the following four functions are architecture-dependent */ | 94 | /* the following four functions are architecture-dependent */ |
97 | #ifdef CONFIG_HAVE_ARCH_PARSE_SRAT | 95 | #ifdef CONFIG_HAVE_ARCH_PARSE_SRAT |