浏览代码

ACPI / NUMA: ia64: Parse all entries of SRAT memory affinity table

In current implementation, SRAT Memory Affinity Structure table
parsing is restricted to number of maximum memblocks allowed
(NR_NODE_MEMBLKS). However NR_NODE_MEMBLKS is defined individually
as per architecture requirements. Hence removing the restriction of
SRAT Memory Affinity Structure parsing in ACPI driver code and
let architecture code check for allowed memblocks count.

This check is already there in the x86 code, so do the same on ia64.

Signed-off-by: Ganapatrao Kulkarni <ganapatrao.kulkarni@cavium.com>
Acked-by: Tony Luck <tony.luck@intel.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Ganapatrao Kulkarni 8 年之前
父节点
当前提交
fd3e454366
共有 2 个文件被更改,包括 6 次插入2 次删除
  1. 5 0
      arch/ia64/kernel/acpi.c
  2. 1 2
      drivers/acpi/numa.c

+ 5 - 0
arch/ia64/kernel/acpi.c

@@ -504,6 +504,11 @@ acpi_numa_memory_affinity_init(struct acpi_srat_mem_affinity *ma)
 	if (!(ma->flags & ACPI_SRAT_MEM_ENABLED))
 		return -1;
 
+	if (num_node_memblks >= NR_NODE_MEMBLKS) {
+		pr_err("NUMA: too many memblk ranges\n");
+		return -EINVAL;
+	}
+
 	/* record this node in proximity bitmap */
 	pxm_bit_set(pxm);
 

+ 1 - 2
drivers/acpi/numa.c

@@ -460,8 +460,7 @@ int __init acpi_numa_init(void)
 					srat_proc, ARRAY_SIZE(srat_proc), 0);
 
 		cnt = acpi_table_parse_srat(ACPI_SRAT_TYPE_MEMORY_AFFINITY,
-					    acpi_parse_memory_affinity,
-					    NR_NODE_MEMBLKS);
+					    acpi_parse_memory_affinity, 0);
 	}
 
 	/* SLIT: System Locality Information Table */