diff options
author | Yinghai Lu <yinghai@kernel.org> | 2011-02-24 14:43:06 +0100 |
---|---|---|
committer | Tejun Heo <tj@kernel.org> | 2011-02-24 14:43:06 +0100 |
commit | 8bc1f91e1f0e977fb95b11d8fa686f5091888110 (patch) | |
tree | e7c6369b20e5e37176b91a93a8ea621df8c9d893 /mm/nobootmem.c | |
parent | e782ab421bbba1912c87934bd0e8998630736418 (diff) | |
download | linux-3.10-8bc1f91e1f0e977fb95b11d8fa686f5091888110.tar.gz linux-3.10-8bc1f91e1f0e977fb95b11d8fa686f5091888110.tar.bz2 linux-3.10-8bc1f91e1f0e977fb95b11d8fa686f5091888110.zip |
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>
Diffstat (limited to 'mm/nobootmem.c')
-rw-r--r-- | mm/nobootmem.c | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/mm/nobootmem.c b/mm/nobootmem.c index 6a018e49b7b..e2bdb07079c 100644 --- a/mm/nobootmem.c +++ b/mm/nobootmem.c @@ -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 |