aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorTejun Heo <tj@kernel.org>2011-07-12 04:46:32 -0400
committerH. Peter Anvin <hpa@linux.intel.com>2011-07-14 14:45:33 -0400
commitf9b18db3b1cedc75e5d002a4d7097891c3399736 (patch)
treea8840cf9d668f107315f4c2f05824cafbbfa3e35
parentb2fea988f4f3b38ff4edfc1556a843c91932804c (diff)
memblock: Don't allow archs to override memblock_nid_range()
memblock_nid_range() is used to implement memblock_[try_]alloc_nid(). The generic version determines the range by walking early_node_map with for_each_mem_pfn_range(). The generic version is defined __weak to allow arch override. Currently, only sparc overrides it; however, with the previous update to the generic implementation, there isn't much to be gained with arch override. Sparc would behave exactly the same with the generic implementation. This patch disallows arch override for memblock_nid_range() and make both generic and sparc versions static. sparc is only compile tested. Signed-off-by: Tejun Heo <tj@kernel.org> Link: http://lkml.kernel.org/r/1310460395-30913-6-git-send-email-tj@kernel.org Cc: "David S. Miller" <davem@davemloft.net> Cc: Yinghai Lu <yinghai@kernel.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
-rw-r--r--arch/sparc/mm/init_64.c4
-rw-r--r--include/linux/memblock.h1
-rw-r--r--mm/memblock.c2
3 files changed, 3 insertions, 4 deletions
diff --git a/arch/sparc/mm/init_64.c b/arch/sparc/mm/init_64.c
index 3fd8e18bed80..8415f614ce0c 100644
--- a/arch/sparc/mm/init_64.c
+++ b/arch/sparc/mm/init_64.c
@@ -785,7 +785,7 @@ static int find_node(unsigned long addr)
785 return -1; 785 return -1;
786} 786}
787 787
788u64 memblock_nid_range(u64 start, u64 end, int *nid) 788static u64 memblock_nid_range(u64 start, u64 end, int *nid)
789{ 789{
790 *nid = find_node(start); 790 *nid = find_node(start);
791 start += PAGE_SIZE; 791 start += PAGE_SIZE;
@@ -803,7 +803,7 @@ u64 memblock_nid_range(u64 start, u64 end, int *nid)
803 return start; 803 return start;
804} 804}
805#else 805#else
806u64 memblock_nid_range(u64 start, u64 end, int *nid) 806static u64 memblock_nid_range(u64 start, u64 end, int *nid)
807{ 807{
808 *nid = 0; 808 *nid = 0;
809 return end; 809 return end;
diff --git a/include/linux/memblock.h b/include/linux/memblock.h
index 349688899cb0..329ffb26c1c9 100644
--- a/include/linux/memblock.h
+++ b/include/linux/memblock.h
@@ -89,7 +89,6 @@ extern int memblock_is_region_reserved(phys_addr_t base, phys_addr_t size);
89extern void memblock_dump_all(void); 89extern void memblock_dump_all(void);
90 90
91/* Provided by the architecture */ 91/* Provided by the architecture */
92extern phys_addr_t memblock_nid_range(phys_addr_t start, phys_addr_t end, int *nid);
93extern int memblock_memory_can_coalesce(phys_addr_t addr1, phys_addr_t size1, 92extern int memblock_memory_can_coalesce(phys_addr_t addr1, phys_addr_t size1,
94 phys_addr_t addr2, phys_addr_t size2); 93 phys_addr_t addr2, phys_addr_t size2);
95 94
diff --git a/mm/memblock.c b/mm/memblock.c
index 97f3486ce4d6..22cd999b0d4e 100644
--- a/mm/memblock.c
+++ b/mm/memblock.c
@@ -508,7 +508,7 @@ phys_addr_t __init memblock_alloc(phys_addr_t size, phys_addr_t align)
508 * have been done to populate it. 508 * have been done to populate it.
509 */ 509 */
510 510
511phys_addr_t __weak __init memblock_nid_range(phys_addr_t start, phys_addr_t end, int *nid) 511static phys_addr_t __init memblock_nid_range(phys_addr_t start, phys_addr_t end, int *nid)
512{ 512{
513#ifdef CONFIG_ARCH_POPULATES_NODE_MAP 513#ifdef CONFIG_ARCH_POPULATES_NODE_MAP
514 unsigned long start_pfn, end_pfn; 514 unsigned long start_pfn, end_pfn;