diff options
author | Thomas Renninger <trenn@suse.de> | 2012-07-31 17:41:09 +0200 |
---|---|---|
committer | Len Brown <len.brown@intel.com> | 2012-08-03 00:15:53 -0400 |
commit | 095adbb6441172985f5ddc3b9e88cb3191bdeac4 (patch) | |
tree | 60c21d962efe921e98f308e2d40edf5260fe57c1 /arch/ia64/kernel/acpi.c | |
parent | f3946fb6e50b750d34f445188fa6746d14596afa (diff) | |
download | linux-095adbb6441172985f5ddc3b9e88cb3191bdeac4.tar.gz linux-095adbb6441172985f5ddc3b9e88cb3191bdeac4.tar.bz2 linux-095adbb6441172985f5ddc3b9e88cb3191bdeac4.zip |
ACPI: Only count valid srat memory structures
Otherwise you could run into:
WARN_ON in numa_register_memblks(), because node_possible_map is zero
References: https://bugzilla.novell.com/show_bug.cgi?id=757888
On this machine (ProLiant ML570 G3) the SRAT table contains:
- No processor affinities
- One memory affinity structure (which is set disabled)
CC: Per Jessen <per@opensuse.org>
CC: Andi Kleen <andi@firstfloor.org>
Signed-off-by: Thomas Renninger <trenn@suse.de>
Signed-off-by: Len Brown <len.brown@intel.com>
Diffstat (limited to 'arch/ia64/kernel/acpi.c')
-rw-r--r-- | arch/ia64/kernel/acpi.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/arch/ia64/kernel/acpi.c b/arch/ia64/kernel/acpi.c index 6f38b6120d96..440578850ae5 100644 --- a/arch/ia64/kernel/acpi.c +++ b/arch/ia64/kernel/acpi.c @@ -497,7 +497,7 @@ acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa) srat_num_cpus++; } -void __init +int __init acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma) { unsigned long paddr, size; @@ -512,7 +512,7 @@ acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma) /* Ignore disabled entries */ if (!(ma->flags & ACPI_SRAT_MEM_ENABLED)) - return; + return -1; /* record this node in proximity bitmap */ pxm_bit_set(pxm); @@ -531,6 +531,7 @@ acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma) p->size = size; p->nid = pxm; num_node_memblks++; + return 0; } void __init acpi_numa_arch_fixup(void) |