summaryrefslogtreecommitdiffstats
path: root/arch/x86/mm/amdtopology_64.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2011-02-16 12:13:07 +0100
committerTejun Heo <tj@kernel.org>2011-02-16 12:13:07 +0100
commitec8cf29b1d39aeb6ef98bc589f0c9a33a8f94c49 (patch)
tree096c8f6b23944e000628d245fd43719cd7a1b104 /arch/x86/mm/amdtopology_64.c
parentx86-64, NUMA: Restructure initmem_init() (diff)
downloadlinux-ec8cf29b1d39aeb6ef98bc589f0c9a33a8f94c49.tar.xz
linux-ec8cf29b1d39aeb6ef98bc589f0c9a33a8f94c49.zip
x86-64, NUMA: Use common {cpu|mem}_nodes_parsed
ACPI and amd are using separate nodes_parsed masks. Add {cpu|mem}_nodes_parsed and use them in all NUMA init methods. Initialization of the masks and building node_possible_map are now handled commonly by initmem_init(). dummy_numa_init() is updated to set node 0 on both masks. While at it, move the info messages from scan to init. Signed-off-by: Tejun Heo <tj@kernel.org> Cc: Yinghai Lu <yinghai@kernel.org> Cc: Brian Gerst <brgerst@gmail.com> Cc: Cyrill Gorcunov <gorcunov@gmail.com> Cc: Shaohui Zheng <shaohui.zheng@intel.com> Cc: David Rientjes <rientjes@google.com> Cc: Ingo Molnar <mingo@elte.hu> Cc: H. Peter Anvin <hpa@linux.intel.com>
Diffstat (limited to 'arch/x86/mm/amdtopology_64.c')
-rw-r--r--arch/x86/mm/amdtopology_64.c10
1 files changed, 4 insertions, 6 deletions
diff --git a/arch/x86/mm/amdtopology_64.c b/arch/x86/mm/amdtopology_64.c
index 655ccffc6ee5..4f822a247125 100644
--- a/arch/x86/mm/amdtopology_64.c
+++ b/arch/x86/mm/amdtopology_64.c
@@ -28,7 +28,6 @@
static struct bootnode __initdata nodes[8];
static unsigned char __initdata nodeids[8];
-static nodemask_t __initdata nodes_parsed = NODE_MASK_NONE;
static __init int find_northbridge(void)
{
@@ -123,7 +122,7 @@ int __init amd_numa_init(void)
nodeid, (base >> 8) & 3, (limit >> 8) & 3);
return -EINVAL;
}
- if (node_isset(nodeid, nodes_parsed)) {
+ if (node_isset(nodeid, mem_nodes_parsed)) {
pr_info("Node %d already present, skipping\n",
nodeid);
continue;
@@ -173,7 +172,8 @@ int __init amd_numa_init(void)
prevbase = base;
- node_set(nodeid, nodes_parsed);
+ node_set(nodeid, mem_nodes_parsed);
+ node_set(nodeid, cpu_nodes_parsed);
}
if (!found)
@@ -190,7 +190,7 @@ void __init amd_get_nodes(struct bootnode *physnodes)
{
int i;
- for_each_node_mask(i, nodes_parsed) {
+ for_each_node_mask(i, mem_nodes_parsed) {
physnodes[i].start = nodes[i].start;
physnodes[i].end = nodes[i].end;
}
@@ -258,8 +258,6 @@ int __init amd_scan_nodes(void)
unsigned int apicid_base;
int i;
- BUG_ON(nodes_empty(nodes_parsed));
- node_possible_map = nodes_parsed;
memnode_shift = compute_hash_shift(nodes, 8, NULL);
if (memnode_shift < 0) {
pr_err("No NUMA node hash function found. Contact maintainer\n");