Commit f9b18db3 authored by Tejun Heo's avatar Tejun Heo Committed by H. Peter Anvin

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: default avatarTejun 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: default avatarH. Peter Anvin <hpa@linux.intel.com>
parent b2fea988
...@@ -785,7 +785,7 @@ static int find_node(unsigned long addr) ...@@ -785,7 +785,7 @@ static int find_node(unsigned long addr)
return -1; return -1;
} }
u64 memblock_nid_range(u64 start, u64 end, int *nid) static u64 memblock_nid_range(u64 start, u64 end, int *nid)
{ {
*nid = find_node(start); *nid = find_node(start);
start += PAGE_SIZE; start += PAGE_SIZE;
...@@ -803,7 +803,7 @@ u64 memblock_nid_range(u64 start, u64 end, int *nid) ...@@ -803,7 +803,7 @@ u64 memblock_nid_range(u64 start, u64 end, int *nid)
return start; return start;
} }
#else #else
u64 memblock_nid_range(u64 start, u64 end, int *nid) static u64 memblock_nid_range(u64 start, u64 end, int *nid)
{ {
*nid = 0; *nid = 0;
return end; return end;
......
...@@ -89,7 +89,6 @@ extern int memblock_is_region_reserved(phys_addr_t base, phys_addr_t size); ...@@ -89,7 +89,6 @@ extern int memblock_is_region_reserved(phys_addr_t base, phys_addr_t size);
extern void memblock_dump_all(void); extern void memblock_dump_all(void);
/* Provided by the architecture */ /* Provided by the architecture */
extern phys_addr_t memblock_nid_range(phys_addr_t start, phys_addr_t end, int *nid);
extern int memblock_memory_can_coalesce(phys_addr_t addr1, phys_addr_t size1, extern int memblock_memory_can_coalesce(phys_addr_t addr1, phys_addr_t size1,
phys_addr_t addr2, phys_addr_t size2); phys_addr_t addr2, phys_addr_t size2);
......
...@@ -508,7 +508,7 @@ phys_addr_t __init memblock_alloc(phys_addr_t size, phys_addr_t align) ...@@ -508,7 +508,7 @@ phys_addr_t __init memblock_alloc(phys_addr_t size, phys_addr_t align)
* have been done to populate it. * have been done to populate it.
*/ */
phys_addr_t __weak __init memblock_nid_range(phys_addr_t start, phys_addr_t end, int *nid) static phys_addr_t __init memblock_nid_range(phys_addr_t start, phys_addr_t end, int *nid)
{ {
#ifdef CONFIG_ARCH_POPULATES_NODE_MAP #ifdef CONFIG_ARCH_POPULATES_NODE_MAP
unsigned long start_pfn, end_pfn; unsigned long start_pfn, end_pfn;
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment