aboutsummaryrefslogtreecommitdiffstats
path: root/arch/x86/mm/numa_64.c
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2011-02-16 11:11:08 -0500
committerTejun Heo <tj@kernel.org>2011-02-16 11:11:08 -0500
commit8968dab8ad90ea16ef92f2406868354ea3ab6bb9 (patch)
treee385ef373b7ab2f5f9a1457a2910a3d57d61bad7 /arch/x86/mm/numa_64.c
parent5d371b08fea80c4fb7450d31e5a4e35b438ef850 (diff)
x86-64, NUMA: Remove %NULL @nodeids handling from compute_hash_shift()
numa_emulation() called compute_hash_shift() with %NULL @nodeids which meant identity mapping between index and nodeid. Make numa_emulation() build identity array and drop %NULL @nodeids handling from populate_memnodemap() and thus from compute_hash_shift(). This is to prepare for transition to using memblks instead. 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/numa_64.c')
-rw-r--r--arch/x86/mm/numa_64.c14
1 files changed, 7 insertions, 7 deletions
diff --git a/arch/x86/mm/numa_64.c b/arch/x86/mm/numa_64.c
index e211c005f5e..243d18d4cfd 100644
--- a/arch/x86/mm/numa_64.c
+++ b/arch/x86/mm/numa_64.c
@@ -63,12 +63,7 @@ static int __init populate_memnodemap(const struct bootnode *nodes,
63 do { 63 do {
64 if (memnodemap[addr >> shift] != NUMA_NO_NODE) 64 if (memnodemap[addr >> shift] != NUMA_NO_NODE)
65 return -1; 65 return -1;
66 66 memnodemap[addr >> shift] = nodeids[i];
67 if (!nodeids)
68 memnodemap[addr >> shift] = i;
69 else
70 memnodemap[addr >> shift] = nodeids[i];
71
72 addr += (1UL << shift); 67 addr += (1UL << shift);
73 } while (addr < end); 68 } while (addr < end);
74 res = 1; 69 res = 1;
@@ -706,6 +701,7 @@ static int __init split_nodes_size_interleave(u64 addr, u64 max_addr, u64 size)
706static int __init numa_emulation(unsigned long start_pfn, 701static int __init numa_emulation(unsigned long start_pfn,
707 unsigned long last_pfn, int acpi, int amd) 702 unsigned long last_pfn, int acpi, int amd)
708{ 703{
704 static int nodeid[NR_NODE_MEMBLKS] __initdata;
709 u64 addr = start_pfn << PAGE_SHIFT; 705 u64 addr = start_pfn << PAGE_SHIFT;
710 u64 max_addr = last_pfn << PAGE_SHIFT; 706 u64 max_addr = last_pfn << PAGE_SHIFT;
711 int num_nodes; 707 int num_nodes;
@@ -730,7 +726,11 @@ static int __init numa_emulation(unsigned long start_pfn,
730 726
731 if (num_nodes < 0) 727 if (num_nodes < 0)
732 return num_nodes; 728 return num_nodes;
733 memnode_shift = compute_hash_shift(nodes, num_nodes, NULL); 729
730 for (i = 0; i < ARRAY_SIZE(nodeid); i++)
731 nodeid[i] = i;
732
733 memnode_shift = compute_hash_shift(nodes, num_nodes, nodeid);
734 if (memnode_shift < 0) { 734 if (memnode_shift < 0) {
735 memnode_shift = 0; 735 memnode_shift = 0;
736 printk(KERN_ERR "No NUMA hash function found. NUMA emulation " 736 printk(KERN_ERR "No NUMA hash function found. NUMA emulation "