|
@@ -79,7 +79,7 @@ static __init void bad_srat(void)
|
|
printk(KERN_ERR "SRAT: SRAT not used.\n");
|
|
printk(KERN_ERR "SRAT: SRAT not used.\n");
|
|
acpi_numa = -1;
|
|
acpi_numa = -1;
|
|
for (i = 0; i < MAX_LOCAL_APIC; i++)
|
|
for (i = 0; i < MAX_LOCAL_APIC; i++)
|
|
- apicid_to_node[i] = NUMA_NO_NODE;
|
|
|
|
|
|
+ set_apicid_to_node(i, NUMA_NO_NODE);
|
|
for (i = 0; i < MAX_NUMNODES; i++) {
|
|
for (i = 0; i < MAX_NUMNODES; i++) {
|
|
nodes[i].start = nodes[i].end = 0;
|
|
nodes[i].start = nodes[i].end = 0;
|
|
nodes_add[i].start = nodes_add[i].end = 0;
|
|
nodes_add[i].start = nodes_add[i].end = 0;
|
|
@@ -138,7 +138,7 @@ acpi_numa_x2apic_affinity_init(struct acpi_srat_x2apic_cpu_affinity *pa)
|
|
printk(KERN_INFO "SRAT: PXM %u -> APIC 0x%04x -> Node %u skipped apicid that is too big\n", pxm, apic_id, node);
|
|
printk(KERN_INFO "SRAT: PXM %u -> APIC 0x%04x -> Node %u skipped apicid that is too big\n", pxm, apic_id, node);
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
- apicid_to_node[apic_id] = node;
|
|
|
|
|
|
+ set_apicid_to_node(apic_id, node);
|
|
node_set(node, cpu_nodes_parsed);
|
|
node_set(node, cpu_nodes_parsed);
|
|
acpi_numa = 1;
|
|
acpi_numa = 1;
|
|
printk(KERN_INFO "SRAT: PXM %u -> APIC 0x%04x -> Node %u\n",
|
|
printk(KERN_INFO "SRAT: PXM %u -> APIC 0x%04x -> Node %u\n",
|
|
@@ -178,7 +178,7 @@ acpi_numa_processor_affinity_init(struct acpi_srat_cpu_affinity *pa)
|
|
return;
|
|
return;
|
|
}
|
|
}
|
|
|
|
|
|
- apicid_to_node[apic_id] = node;
|
|
|
|
|
|
+ set_apicid_to_node(apic_id, node);
|
|
node_set(node, cpu_nodes_parsed);
|
|
node_set(node, cpu_nodes_parsed);
|
|
acpi_numa = 1;
|
|
acpi_numa = 1;
|
|
printk(KERN_INFO "SRAT: PXM %u -> APIC 0x%02x -> Node %u\n",
|
|
printk(KERN_INFO "SRAT: PXM %u -> APIC 0x%02x -> Node %u\n",
|
|
@@ -521,7 +521,7 @@ void __init acpi_fake_nodes(const struct bootnode *fake_nodes, int num_nodes)
|
|
* node, it must now point to the fake node ID.
|
|
* node, it must now point to the fake node ID.
|
|
*/
|
|
*/
|
|
for (j = 0; j < MAX_LOCAL_APIC; j++)
|
|
for (j = 0; j < MAX_LOCAL_APIC; j++)
|
|
- if (apicid_to_node[j] == nid &&
|
|
|
|
|
|
+ if (__apicid_to_node[j] == nid &&
|
|
fake_apicid_to_node[j] == NUMA_NO_NODE)
|
|
fake_apicid_to_node[j] == NUMA_NO_NODE)
|
|
fake_apicid_to_node[j] = i;
|
|
fake_apicid_to_node[j] = i;
|
|
}
|
|
}
|
|
@@ -532,13 +532,13 @@ void __init acpi_fake_nodes(const struct bootnode *fake_nodes, int num_nodes)
|
|
* value.
|
|
* value.
|
|
*/
|
|
*/
|
|
for (i = 0; i < MAX_LOCAL_APIC; i++)
|
|
for (i = 0; i < MAX_LOCAL_APIC; i++)
|
|
- if (apicid_to_node[i] != NUMA_NO_NODE &&
|
|
|
|
|
|
+ if (__apicid_to_node[i] != NUMA_NO_NODE &&
|
|
fake_apicid_to_node[i] == NUMA_NO_NODE)
|
|
fake_apicid_to_node[i] == NUMA_NO_NODE)
|
|
fake_apicid_to_node[i] = 0;
|
|
fake_apicid_to_node[i] = 0;
|
|
|
|
|
|
for (i = 0; i < num_nodes; i++)
|
|
for (i = 0; i < num_nodes; i++)
|
|
__acpi_map_pxm_to_node(fake_node_to_pxm_map[i], i);
|
|
__acpi_map_pxm_to_node(fake_node_to_pxm_map[i], i);
|
|
- memcpy(apicid_to_node, fake_apicid_to_node, sizeof(apicid_to_node));
|
|
|
|
|
|
+ memcpy(__apicid_to_node, fake_apicid_to_node, sizeof(__apicid_to_node));
|
|
|
|
|
|
nodes_clear(nodes_parsed);
|
|
nodes_clear(nodes_parsed);
|
|
for (i = 0; i < num_nodes; i++)
|
|
for (i = 0; i < num_nodes; i++)
|