sparc: Use HAVE_MEMBLOCK_NODE_MAP
sparc doesn't access early_node_map[] directly and enabling HAVE_MEMBLOCK_NODE_MAP is trivial - replacing add_active_range() calls with memblock_set_node() and selecting HAVE_MEMBLOCK_NODE_MAP is enough. -v2: Use select in Kconfig instead as suggested by Sam Ravnborg. Signed-off-by: Tejun Heo <tj@kernel.org> Acked-by: "David S. Miller" <davem@davemloft.net> Cc: Sam Ravnborg <sam@ravnborg.org> Cc: sparclinux@vger.kernel.org
This commit is contained in:
parent
1d7cfe18ec
commit
2a4814df54
2 changed files with 5 additions and 20 deletions
|
@ -43,6 +43,7 @@ config SPARC64
|
||||||
select HAVE_KPROBES
|
select HAVE_KPROBES
|
||||||
select HAVE_RCU_TABLE_FREE if SMP
|
select HAVE_RCU_TABLE_FREE if SMP
|
||||||
select HAVE_MEMBLOCK
|
select HAVE_MEMBLOCK
|
||||||
|
select HAVE_MEMBLOCK_NODE_MAP
|
||||||
select HAVE_SYSCALL_WRAPPERS
|
select HAVE_SYSCALL_WRAPPERS
|
||||||
select HAVE_DYNAMIC_FTRACE
|
select HAVE_DYNAMIC_FTRACE
|
||||||
select HAVE_FTRACE_MCOUNT_RECORD
|
select HAVE_FTRACE_MCOUNT_RECORD
|
||||||
|
|
|
@ -816,7 +816,7 @@ static u64 memblock_nid_range(u64 start, u64 end, int *nid)
|
||||||
#endif
|
#endif
|
||||||
|
|
||||||
/* This must be invoked after performing all of the necessary
|
/* This must be invoked after performing all of the necessary
|
||||||
* add_active_range() calls for 'nid'. We need to be able to get
|
* memblock_set_node() calls for 'nid'. We need to be able to get
|
||||||
* correct data from get_pfn_range_for_nid().
|
* correct data from get_pfn_range_for_nid().
|
||||||
*/
|
*/
|
||||||
static void __init allocate_node_data(int nid)
|
static void __init allocate_node_data(int nid)
|
||||||
|
@ -987,14 +987,11 @@ static void __init add_node_ranges(void)
|
||||||
|
|
||||||
this_end = memblock_nid_range(start, end, &nid);
|
this_end = memblock_nid_range(start, end, &nid);
|
||||||
|
|
||||||
numadbg("Adding active range nid[%d] "
|
numadbg("Setting memblock NUMA node nid[%d] "
|
||||||
"start[%lx] end[%lx]\n",
|
"start[%lx] end[%lx]\n",
|
||||||
nid, start, this_end);
|
nid, start, this_end);
|
||||||
|
|
||||||
add_active_range(nid,
|
memblock_set_node(start, this_end - start, nid);
|
||||||
start >> PAGE_SHIFT,
|
|
||||||
this_end >> PAGE_SHIFT);
|
|
||||||
|
|
||||||
start = this_end;
|
start = this_end;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -1282,7 +1279,6 @@ static void __init bootmem_init_nonnuma(void)
|
||||||
{
|
{
|
||||||
unsigned long top_of_ram = memblock_end_of_DRAM();
|
unsigned long top_of_ram = memblock_end_of_DRAM();
|
||||||
unsigned long total_ram = memblock_phys_mem_size();
|
unsigned long total_ram = memblock_phys_mem_size();
|
||||||
struct memblock_region *reg;
|
|
||||||
|
|
||||||
numadbg("bootmem_init_nonnuma()\n");
|
numadbg("bootmem_init_nonnuma()\n");
|
||||||
|
|
||||||
|
@ -1292,20 +1288,8 @@ static void __init bootmem_init_nonnuma(void)
|
||||||
(top_of_ram - total_ram) >> 20);
|
(top_of_ram - total_ram) >> 20);
|
||||||
|
|
||||||
init_node_masks_nonnuma();
|
init_node_masks_nonnuma();
|
||||||
|
memblock_set_node(0, (phys_addr_t)ULLONG_MAX, 0);
|
||||||
for_each_memblock(memory, reg) {
|
|
||||||
unsigned long start_pfn, end_pfn;
|
|
||||||
|
|
||||||
if (!reg->size)
|
|
||||||
continue;
|
|
||||||
|
|
||||||
start_pfn = memblock_region_memory_base_pfn(reg);
|
|
||||||
end_pfn = memblock_region_memory_end_pfn(reg);
|
|
||||||
add_active_range(0, start_pfn, end_pfn);
|
|
||||||
}
|
|
||||||
|
|
||||||
allocate_node_data(0);
|
allocate_node_data(0);
|
||||||
|
|
||||||
node_set_online(0);
|
node_set_online(0);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue