diff options
Diffstat (limited to 'mm/page_alloc.c')
| -rw-r--r-- | mm/page_alloc.c | 8 | 
1 files changed, 8 insertions, 0 deletions
diff --git a/mm/page_alloc.c b/mm/page_alloc.c index 431214b941ac..9bd339eb04c6 100644 --- a/mm/page_alloc.c +++ b/mm/page_alloc.c @@ -3634,6 +3634,9 @@ void * __init __alloc_memory_core_early(int nid, u64 size, u64 align,  	int i;  	void *ptr; +	if (limit > get_max_mapped()) +		limit = get_max_mapped(); +  	/* need to go over early_node_map to find out good range for node */  	for_each_active_range_index_in_nid(i, nid) {  		u64 addr; @@ -3659,6 +3662,11 @@ void * __init __alloc_memory_core_early(int nid, u64 size, u64 align,  		ptr = phys_to_virt(addr);  		memset(ptr, 0, size);  		reserve_early_without_check(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;  	}  | 
