diff options
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/numa.c | 6 | ||||
-rw-r--r-- | drivers/acpi/tables.c | 13 |
2 files changed, 13 insertions, 6 deletions
diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c index dcd58a446f4b..bb6caab24322 100644 --- a/drivers/acpi/numa.c +++ b/drivers/acpi/numa.c | |||
@@ -220,9 +220,7 @@ int __init acpi_numa_init(void) | |||
220 | int result; | 220 | int result; |
221 | 221 | ||
222 | /* SRAT: Static Resource Affinity Table */ | 222 | /* SRAT: Static Resource Affinity Table */ |
223 | result = acpi_table_parse(ACPI_SIG_SRAT, acpi_parse_srat); | 223 | if (!acpi_table_parse(ACPI_SIG_SRAT, acpi_parse_srat)) { |
224 | |||
225 | if (result > 0) { | ||
226 | result = acpi_table_parse_srat(ACPI_SRAT_TYPE_CPU_AFFINITY, | 224 | result = acpi_table_parse_srat(ACPI_SRAT_TYPE_CPU_AFFINITY, |
227 | acpi_parse_processor_affinity, | 225 | acpi_parse_processor_affinity, |
228 | NR_CPUS); | 226 | NR_CPUS); |
@@ -230,7 +228,7 @@ int __init acpi_numa_init(void) | |||
230 | } | 228 | } |
231 | 229 | ||
232 | /* SLIT: System Locality Information Table */ | 230 | /* SLIT: System Locality Information Table */ |
233 | result = acpi_table_parse(ACPI_SIG_SLIT, acpi_parse_slit); | 231 | acpi_table_parse(ACPI_SIG_SLIT, acpi_parse_slit); |
234 | 232 | ||
235 | acpi_numa_arch_fixup(); | 233 | acpi_numa_arch_fixup(); |
236 | return 0; | 234 | return 0; |
diff --git a/drivers/acpi/tables.c b/drivers/acpi/tables.c index ba4cb200314a..2075ec7b827b 100644 --- a/drivers/acpi/tables.c +++ b/drivers/acpi/tables.c | |||
@@ -226,6 +226,15 @@ acpi_table_parse_madt(enum acpi_madt_type id, | |||
226 | handler, max_entries); | 226 | handler, max_entries); |
227 | } | 227 | } |
228 | 228 | ||
229 | /** | ||
230 | * acpi_table_parse - find table with @id, run @handler on it | ||
231 | * | ||
232 | * @id: table id to find | ||
233 | * @handler: handler to run | ||
234 | * | ||
235 | * Scan the ACPI System Descriptor Table (STD) for a table matching @id, | ||
236 | * run @handler on it. Return 0 if table found, return on if not. | ||
237 | */ | ||
229 | int __init acpi_table_parse(char *id, acpi_table_handler handler) | 238 | int __init acpi_table_parse(char *id, acpi_table_handler handler) |
230 | { | 239 | { |
231 | struct acpi_table_header *table = NULL; | 240 | struct acpi_table_header *table = NULL; |
@@ -235,9 +244,9 @@ int __init acpi_table_parse(char *id, acpi_table_handler handler) | |||
235 | acpi_get_table(id, 0, &table); | 244 | acpi_get_table(id, 0, &table); |
236 | if (table) { | 245 | if (table) { |
237 | handler(table); | 246 | handler(table); |
238 | return 1; | ||
239 | } else | ||
240 | return 0; | 247 | return 0; |
248 | } else | ||
249 | return 1; | ||
241 | } | 250 | } |
242 | 251 | ||
243 | /* | 252 | /* |