bootmem: Move __alloc_memory_core_early() to nobootmem.c
Now that bootmem.c and nobootmem.c are separate, there's no reason to define __alloc_memory_core_early(), which is used only by nobootmem, inside #ifdef in page_alloc.c. Move it to nobootmem.c and make it static. This patch doesn't introduce any behavior change. -tj: Updated commit description. Signed-off-by: Yinghai Lu <yinghai@kernel.org> Acked-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Tejun Heo <tj@kernel.org>
This commit is contained in:
parent
e782ab421b
commit
8bc1f91e1f
3 changed files with 25 additions and 30 deletions
|
@ -1309,8 +1309,6 @@ int add_from_early_node_map(struct range *range, int az,
|
|||
int nr_range, int nid);
|
||||
u64 __init find_memory_core_early(int nid, u64 size, u64 align,
|
||||
u64 goal, u64 limit);
|
||||
void *__alloc_memory_core_early(int nodeid, u64 size, u64 align,
|
||||
u64 goal, u64 limit);
|
||||
typedef int (*work_fn_t)(unsigned long, unsigned long, void *);
|
||||
extern void work_with_active_regions(int nid, work_fn_t work_fn, void *data);
|
||||
extern void sparse_memory_present_with_active_regions(int nid);
|
||||
|
|
|
@ -40,6 +40,31 @@ unsigned long max_pfn;
|
|||
unsigned long saved_max_pfn;
|
||||
#endif
|
||||
|
||||
static void * __init __alloc_memory_core_early(int nid, u64 size, u64 align,
|
||||
u64 goal, u64 limit)
|
||||
{
|
||||
void *ptr;
|
||||
u64 addr;
|
||||
|
||||
if (limit > memblock.current_limit)
|
||||
limit = memblock.current_limit;
|
||||
|
||||
addr = find_memory_core_early(nid, size, align, goal, limit);
|
||||
|
||||
if (addr == MEMBLOCK_ERROR)
|
||||
return NULL;
|
||||
|
||||
ptr = phys_to_virt(addr);
|
||||
memset(ptr, 0, size);
|
||||
memblock_x86_reserve_range(addr, addr + size, "BOOTMEM");
|
||||
/*
|
||||
* The min_count is set to 0 so that bootmem allocated blocks
|
||||
* are never reported as leaks.
|
||||
*/
|
||||
kmemleak_alloc(ptr, size, 0, 0);
|
||||
return ptr;
|
||||
}
|
||||
|
||||
/*
|
||||
* free_bootmem_late - free bootmem pages directly to page allocator
|
||||
* @addr: starting address of the range
|
||||
|
|
|
@ -3780,34 +3780,6 @@ int __init add_from_early_node_map(struct range *range, int az,
|
|||
return nr_range;
|
||||
}
|
||||
|
||||
#ifdef CONFIG_NO_BOOTMEM
|
||||
void * __init __alloc_memory_core_early(int nid, u64 size, u64 align,
|
||||
u64 goal, u64 limit)
|
||||
{
|
||||
void *ptr;
|
||||
u64 addr;
|
||||
|
||||
if (limit > memblock.current_limit)
|
||||
limit = memblock.current_limit;
|
||||
|
||||
addr = find_memory_core_early(nid, size, align, goal, limit);
|
||||
|
||||
if (addr == MEMBLOCK_ERROR)
|
||||
return NULL;
|
||||
|
||||
ptr = phys_to_virt(addr);
|
||||
memset(ptr, 0, size);
|
||||
memblock_x86_reserve_range(addr, addr + size, "BOOTMEM");
|
||||
/*
|
||||
* The min_count is set to 0 so that bootmem allocated blocks
|
||||
* are never reported as leaks.
|
||||
*/
|
||||
kmemleak_alloc(ptr, size, 0, 0);
|
||||
return ptr;
|
||||
}
|
||||
#endif
|
||||
|
||||
|
||||
void __init work_with_active_regions(int nid, work_fn_t work_fn, void *data)
|
||||
{
|
||||
int i;
|
||||
|
|
Loading…
Reference in a new issue