]> Pileus Git - ~andy/linux/commitdiff
x86-64, NUMA: Add common find_node_by_addr()
authorTejun Heo <tj@kernel.org>
Wed, 16 Feb 2011 16:11:09 +0000 (17:11 +0100)
committerTejun Heo <tj@kernel.org>
Wed, 16 Feb 2011 16:11:09 +0000 (17:11 +0100)
srat_64.c and amdtopology_64.c had their own versions of
find_node_by_addr() which were basically the same.  Add common one in
numa_64.c and remove the duplicates.

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>
arch/x86/include/asm/numa_64.h
arch/x86/mm/amdtopology_64.c
arch/x86/mm/numa_64.c
arch/x86/mm/srat_64.c

index e925605150a001331ca1bd0c87fe1b6789ee8f1a..925ade9d67e49e23a33bb00f2d794b03297878b5 100644 (file)
@@ -35,6 +35,7 @@ extern int __init numa_add_memblk(int nodeid, u64 start, u64 end);
 #define FAKE_NODE_MIN_SIZE     ((u64)32 << 20)
 #define FAKE_NODE_MIN_HASH_MASK        (~(FAKE_NODE_MIN_SIZE - 1UL))
 void numa_emu_cmdline(char *);
+int __init find_node_by_addr(unsigned long addr);
 #endif /* CONFIG_NUMA_EMU */
 #else
 static inline int numa_cpu_node(int cpu)               { return NUMA_NO_NODE; }
index 90cf297b3b599beda820f1609994343768d4219a..8f7a5eb4bd3c4f0e342fbe105e71f433734369cd 100644 (file)
@@ -205,19 +205,6 @@ static s16 fake_apicid_to_node[MAX_LOCAL_APIC] __initdata = {
        [0 ... MAX_LOCAL_APIC-1] = NUMA_NO_NODE
 };
 
-static int __init find_node_by_addr(unsigned long addr)
-{
-       int ret = NUMA_NO_NODE;
-       int i;
-
-       for (i = 0; i < 8; i++)
-               if (addr >= numa_nodes[i].start && addr < numa_nodes[i].end) {
-                       ret = i;
-                       break;
-               }
-       return ret;
-}
-
 /*
  * For NUMA emulation, fake proximity domain (_PXM) to node id mappings must be
  * setup to represent the physical topology but reflect the emulated
index 20aa1d31e1654f8278406b2aac2a7e169d667b7a..681bc0d59db554ce3861f7571eaea8ca45dcc509 100644 (file)
@@ -430,6 +430,25 @@ void __init numa_emu_cmdline(char *str)
        cmdline = str;
 }
 
+int __init find_node_by_addr(unsigned long addr)
+{
+       int ret = NUMA_NO_NODE;
+       int i;
+
+       for_each_node_mask(i, mem_nodes_parsed) {
+               /*
+                * Find the real node that this emulated node appears on.  For
+                * the sake of simplicity, we only use a real node's starting
+                * address to determine which emulated node it appears on.
+                */
+               if (addr >= numa_nodes[i].start && addr < numa_nodes[i].end) {
+                       ret = i;
+                       break;
+               }
+       }
+       return ret;
+}
+
 static int __init setup_physnodes(unsigned long start, unsigned long end)
 {
        int ret = 0;
index d56eff811cd8a94f00b039305f68614a53c5b8fc..51d07338d2e43699c2c0ea0227f782850b225207 100644 (file)
@@ -277,24 +277,6 @@ static int fake_node_to_pxm_map[MAX_NUMNODES] __initdata = {
 static s16 fake_apicid_to_node[MAX_LOCAL_APIC] __initdata = {
        [0 ... MAX_LOCAL_APIC-1] = NUMA_NO_NODE
 };
-static int __init find_node_by_addr(unsigned long addr)
-{
-       int ret = NUMA_NO_NODE;
-       int i;
-
-       for_each_node_mask(i, mem_nodes_parsed) {
-               /*
-                * Find the real node that this emulated node appears on.  For
-                * the sake of simplicity, we only use a real node's starting
-                * address to determine which emulated node it appears on.
-                */
-               if (addr >= numa_nodes[i].start && addr < numa_nodes[i].end) {
-                       ret = i;
-                       break;
-               }
-       }
-       return ret;
-}
 
 /*
  * In NUMA emulation, we need to setup proximity domain (_PXM) to node ID