aboutsummaryrefslogtreecommitdiffstats
path: root/mm/nobootmem.c
diff options
context:
space:
mode:
authorYinghai Lu <yinghai@kernel.org>2011-02-24 08:43:06 -0500
committerTejun Heo <tj@kernel.org>2011-02-24 08:43:06 -0500
commit8bc1f91e1f0e977fb95b11d8fa686f5091888110 (patch)
treee7c6369b20e5e37176b91a93a8ea621df8c9d893 /mm/nobootmem.c
parente782ab421bbba1912c87934bd0e8998630736418 (diff)
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.c25
1 files changed, 25 insertions, 0 deletions
diff --git a/mm/nobootmem.c b/mm/nobootmem.c
index 6a018e49b7be..e2bdb07079ce 100644
--- a/mm/nobootmem.c
+++ b/mm/nobootmem.c
@@ -40,6 +40,31 @@ unsigned long max_pfn;
40unsigned long saved_max_pfn; 40unsigned long saved_max_pfn;
41#endif 41#endif
42 42
43static void * __init __alloc_memory_core_early(int nid, u64 size, u64 align,
44 u64 goal, u64 limit)
45{
46 void *ptr;
47 u64 addr;
48
49 if (limit > memblock.current_limit)
50 limit = memblock.current_limit;
51
52 addr = find_memory_core_early(nid, size, align, goal, limit);
53
54 if (addr == MEMBLOCK_ERROR)
55 return NULL;
56
57 ptr = phys_to_virt(addr);
58 memset(ptr, 0, size);
59 memblock_x86_reserve_range(addr, addr + size, "BOOTMEM");
60 /*
61 * The min_count is set to 0 so that bootmem allocated blocks
62 * are never reported as leaks.
63 */
64 kmemleak_alloc(ptr, size, 0, 0);
65 return ptr;
66}
67
43/* 68/*
44 * free_bootmem_late - free bootmem pages directly to page allocator 69 * free_bootmem_late - free bootmem pages directly to page allocator
45 * @addr: starting address of the range 70 * @addr: starting address of the range