diff options
author | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-06 13:51:36 -0500 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2011-01-06 13:51:36 -0500 |
commit | 017892c341033b3e961e695bc0bf1a815efcf92e (patch) | |
tree | d7499f5f95d938005ce047c4eac44deb56838d48 /drivers/acpi | |
parent | 42cbd8efb0746b55112de45173219f76c54390da (diff) | |
parent | cb2ded37fd2e1039f96c8c892da024a8f033add5 (diff) |
Merge branch 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip
* 'x86-apic-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/linux-2.6-tip:
x86: Fix APIC ID sizing bug on larger systems, clean up MAX_APICS confusion
x86, acpi: Parse all SRAT cpu entries even above the cpu number limitation
x86, acpi: Add MAX_LOCAL_APIC for 32bit
x86: io_apic: Split setup_ioapic_ids_from_mpc()
x86: io_apic: Fix CONFIG_X86_IO_APIC=n breakage
x86: apic: Move probe_nr_irqs_gsi() into ioapic_init_mappings()
x86: Allow platforms to force enable apic
Diffstat (limited to 'drivers/acpi')
-rw-r--r-- | drivers/acpi/numa.c | 14 |
1 files changed, 12 insertions, 2 deletions
diff --git a/drivers/acpi/numa.c b/drivers/acpi/numa.c index 5718566e00f9..d9926afec110 100644 --- a/drivers/acpi/numa.c +++ b/drivers/acpi/numa.c | |||
@@ -275,13 +275,23 @@ acpi_table_parse_srat(enum acpi_srat_type id, | |||
275 | int __init acpi_numa_init(void) | 275 | int __init acpi_numa_init(void) |
276 | { | 276 | { |
277 | int ret = 0; | 277 | int ret = 0; |
278 | int nr_cpu_entries = nr_cpu_ids; | ||
279 | |||
280 | #ifdef CONFIG_X86 | ||
281 | /* | ||
282 | * Should not limit number with cpu num that is from NR_CPUS or nr_cpus= | ||
283 | * SRAT cpu entries could have different order with that in MADT. | ||
284 | * So go over all cpu entries in SRAT to get apicid to node mapping. | ||
285 | */ | ||
286 | nr_cpu_entries = MAX_LOCAL_APIC; | ||
287 | #endif | ||
278 | 288 | ||
279 | /* SRAT: Static Resource Affinity Table */ | 289 | /* SRAT: Static Resource Affinity Table */ |
280 | if (!acpi_table_parse(ACPI_SIG_SRAT, acpi_parse_srat)) { | 290 | if (!acpi_table_parse(ACPI_SIG_SRAT, acpi_parse_srat)) { |
281 | acpi_table_parse_srat(ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY, | 291 | acpi_table_parse_srat(ACPI_SRAT_TYPE_X2APIC_CPU_AFFINITY, |
282 | acpi_parse_x2apic_affinity, nr_cpu_ids); | 292 | acpi_parse_x2apic_affinity, nr_cpu_entries); |
283 | acpi_table_parse_srat(ACPI_SRAT_TYPE_CPU_AFFINITY, | 293 | acpi_table_parse_srat(ACPI_SRAT_TYPE_CPU_AFFINITY, |
284 | acpi_parse_processor_affinity, nr_cpu_ids); | 294 | acpi_parse_processor_affinity, nr_cpu_entries); |
285 | ret = acpi_table_parse_srat(ACPI_SRAT_TYPE_MEMORY_AFFINITY, | 295 | ret = acpi_table_parse_srat(ACPI_SRAT_TYPE_MEMORY_AFFINITY, |
286 | acpi_parse_memory_affinity, | 296 | acpi_parse_memory_affinity, |
287 | NR_NODE_MEMBLKS); | 297 | NR_NODE_MEMBLKS); |