Merge branch 'core-memblock-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip
* 'core-memblock-for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/tip/tip: (52 commits) memblock: Reimplement memblock allocation using reverse free area iterator memblock: Kill early_node_map[] score: Use HAVE_MEMBLOCK_NODE_MAP s390: Use HAVE_MEMBLOCK_NODE_MAP mips: Use HAVE_MEMBLOCK_NODE_MAP ia64: Use HAVE_MEMBLOCK_NODE_MAP SuperH: Use HAVE_MEMBLOCK_NODE_MAP sparc: Use HAVE_MEMBLOCK_NODE_MAP powerpc: Use HAVE_MEMBLOCK_NODE_MAP memblock: Implement memblock_add_node() memblock: s/memblock_analyze()/memblock_allow_resize()/ and update users memblock: Track total size of regions automatically powerpc: Cleanup memblock usage memblock: Reimplement memblock_enforce_memory_limit() using __memblock_remove() memblock: Make memblock functions handle overflowing range @size memblock: Reimplement __memblock_remove() using memblock_isolate_range() memblock: Separate out memblock_isolate_range() from memblock_set_node() memblock: Kill memblock_init() memblock: Kill sentinel entries at the end of static region arrays memblock: Add __memblock_dump_all() ...
This commit is contained in:
@@ -43,6 +43,7 @@ config SPARC64
|
||||
select HAVE_KPROBES
|
||||
select HAVE_RCU_TABLE_FREE if SMP
|
||||
select HAVE_MEMBLOCK
|
||||
select HAVE_MEMBLOCK_NODE_MAP
|
||||
select HAVE_SYSCALL_WRAPPERS
|
||||
select HAVE_DYNAMIC_FTRACE
|
||||
select HAVE_FTRACE_MCOUNT_RECORD
|
||||
@@ -352,9 +353,6 @@ config NODES_SPAN_OTHER_NODES
|
||||
def_bool y
|
||||
depends on NEED_MULTIPLE_NODES
|
||||
|
||||
config ARCH_POPULATES_NODE_MAP
|
||||
def_bool y if SPARC64
|
||||
|
||||
config ARCH_SELECT_MEMORY_MODEL
|
||||
def_bool y if SPARC64
|
||||
|
||||
|
@@ -1,8 +0,0 @@
|
||||
#ifndef _SPARC64_MEMBLOCK_H
|
||||
#define _SPARC64_MEMBLOCK_H
|
||||
|
||||
#include <asm/oplib.h>
|
||||
|
||||
#define MEMBLOCK_DBG(fmt...) prom_printf(fmt)
|
||||
|
||||
#endif /* !(_SPARC64_MEMBLOCK_H) */
|
@@ -790,7 +790,7 @@ static int find_node(unsigned long addr)
|
||||
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);
|
||||
start += PAGE_SIZE;
|
||||
@@ -808,7 +808,7 @@ u64 memblock_nid_range(u64 start, u64 end, int *nid)
|
||||
return start;
|
||||
}
|
||||
#else
|
||||
u64 memblock_nid_range(u64 start, u64 end, int *nid)
|
||||
static u64 memblock_nid_range(u64 start, u64 end, int *nid)
|
||||
{
|
||||
*nid = 0;
|
||||
return end;
|
||||
@@ -816,7 +816,7 @@ u64 memblock_nid_range(u64 start, u64 end, int *nid)
|
||||
#endif
|
||||
|
||||
/* 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().
|
||||
*/
|
||||
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);
|
||||
|
||||
numadbg("Adding active range nid[%d] "
|
||||
numadbg("Setting memblock NUMA node nid[%d] "
|
||||
"start[%lx] end[%lx]\n",
|
||||
nid, start, this_end);
|
||||
|
||||
add_active_range(nid,
|
||||
start >> PAGE_SHIFT,
|
||||
this_end >> PAGE_SHIFT);
|
||||
|
||||
memblock_set_node(start, this_end - start, nid);
|
||||
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 total_ram = memblock_phys_mem_size();
|
||||
struct memblock_region *reg;
|
||||
|
||||
numadbg("bootmem_init_nonnuma()\n");
|
||||
|
||||
@@ -1292,20 +1288,8 @@ static void __init bootmem_init_nonnuma(void)
|
||||
(top_of_ram - total_ram) >> 20);
|
||||
|
||||
init_node_masks_nonnuma();
|
||||
|
||||
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);
|
||||
}
|
||||
|
||||
memblock_set_node(0, (phys_addr_t)ULLONG_MAX, 0);
|
||||
allocate_node_data(0);
|
||||
|
||||
node_set_online(0);
|
||||
}
|
||||
|
||||
@@ -1769,8 +1753,6 @@ void __init paging_init(void)
|
||||
sun4v_ktsb_init();
|
||||
}
|
||||
|
||||
memblock_init();
|
||||
|
||||
/* Find available physical memory...
|
||||
*
|
||||
* Read it twice in order to work around a bug in openfirmware.
|
||||
@@ -1796,7 +1778,7 @@ void __init paging_init(void)
|
||||
|
||||
memblock_enforce_memory_limit(cmdline_memory_size);
|
||||
|
||||
memblock_analyze();
|
||||
memblock_allow_resize();
|
||||
memblock_dump_all();
|
||||
|
||||
set_bit(0, mmu_context_bmap);
|
||||
|
Reference in New Issue
Block a user