Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit 8bc1f91e authored by Yinghai Lu's avatar Yinghai Lu Committed by Tejun Heo
Browse files

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: default avatarYinghai Lu <yinghai@kernel.org>
Acked-by: default avatarAndrew Morton <akpm@linux-foundation.org>
Signed-off-by: default avatarTejun Heo <tj@kernel.org>
parent e782ab42
Loading
Loading
Loading
Loading
+0 −2
Original line number Diff line number Diff line
@@ -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);
+25 −0
Original line number Diff line number Diff line
@@ -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
+0 −28
Original line number Diff line number Diff line
@@ -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;