mirror of https://gitee.com/openkylin/linux.git
[PATCH] x86-64: Clean up the SRAT node list before computing the hash function
Also use for_each_node_mask instead of hand crafted loops. Signed-off-by: Linus Torvalds <torvalds@osdl.org>
This commit is contained in:
parent
66759a01ad
commit
e58e0d0312
|
@ -177,6 +177,14 @@ int __init acpi_scan_nodes(unsigned long start, unsigned long end)
|
|||
int i;
|
||||
if (acpi_numa <= 0)
|
||||
return -1;
|
||||
|
||||
/* First clean up the node list */
|
||||
for_each_node_mask(i, nodes_parsed) {
|
||||
cutoff_node(i, start, end);
|
||||
if (nodes[i].start == nodes[i].end)
|
||||
node_clear(i, nodes_parsed);
|
||||
}
|
||||
|
||||
memnode_shift = compute_hash_shift(nodes, nodes_weight(nodes_parsed));
|
||||
if (memnode_shift < 0) {
|
||||
printk(KERN_ERR
|
||||
|
@ -184,16 +192,10 @@ int __init acpi_scan_nodes(unsigned long start, unsigned long end)
|
|||
bad_srat();
|
||||
return -1;
|
||||
}
|
||||
for (i = 0; i < MAX_NUMNODES; i++) {
|
||||
if (!node_isset(i, nodes_parsed))
|
||||
continue;
|
||||
cutoff_node(i, start, end);
|
||||
if (nodes[i].start == nodes[i].end) {
|
||||
node_clear(i, nodes_parsed);
|
||||
continue;
|
||||
}
|
||||
|
||||
/* Finally register nodes */
|
||||
for_each_node_mask(i, nodes_parsed)
|
||||
setup_node_bootmem(i, nodes[i].start, nodes[i].end);
|
||||
}
|
||||
for (i = 0; i < NR_CPUS; i++) {
|
||||
if (cpu_to_node[i] == NUMA_NO_NODE)
|
||||
continue;
|
||||
|
|
Loading…
Reference in New Issue