mirror of
				https://github.com/torvalds/linux.git
				synced 2025-11-04 02:30:34 +02:00 
			
		
		
		
	memblock: Replace memblock_find_base() with memblock_find_in_range()
memblock_find_base() is a static function with two callers in memblock.c and memblock_find_in_range() is a wrapper around it which just changes the types and order of parameters. Make memblock_find_in_range() take phys_addr_t instead of u64 for consistency and replace memblock_find_base() with it. Signed-off-by: Tejun Heo <tj@kernel.org> Link: http://lkml.kernel.org/r/1310457490-3356-7-git-send-email-tj@kernel.org Cc: Yinghai Lu <yinghai@kernel.org> Cc: Benjamin Herrenschmidt <benh@kernel.crashing.org> Signed-off-by: H. Peter Anvin <hpa@linux.intel.com>
This commit is contained in:
		
							parent
							
								
									1f5026a7e2
								
							
						
					
					
						commit
						fc769a8e70
					
				
					 2 changed files with 9 additions and 13 deletions
				
			
		| 
						 | 
					@ -46,7 +46,8 @@ extern int memblock_can_resize;
 | 
				
			||||||
#define memblock_dbg(fmt, ...) \
 | 
					#define memblock_dbg(fmt, ...) \
 | 
				
			||||||
	if (memblock_debug) printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
 | 
						if (memblock_debug) printk(KERN_INFO pr_fmt(fmt), ##__VA_ARGS__)
 | 
				
			||||||
 | 
					
 | 
				
			||||||
u64 memblock_find_in_range(u64 start, u64 end, u64 size, u64 align);
 | 
					phys_addr_t memblock_find_in_range(phys_addr_t start, phys_addr_t end,
 | 
				
			||||||
 | 
									   phys_addr_t size, phys_addr_t align);
 | 
				
			||||||
int memblock_free_reserved_regions(void);
 | 
					int memblock_free_reserved_regions(void);
 | 
				
			||||||
int memblock_reserve_reserved_regions(void);
 | 
					int memblock_reserve_reserved_regions(void);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
| 
						 | 
					@ -97,8 +97,11 @@ static phys_addr_t __init_memblock memblock_find_region(phys_addr_t start, phys_
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
static phys_addr_t __init_memblock memblock_find_base(phys_addr_t size,
 | 
					/*
 | 
				
			||||||
			phys_addr_t align, phys_addr_t start, phys_addr_t end)
 | 
					 * Find a free area with specified alignment in a specific range.
 | 
				
			||||||
 | 
					 */
 | 
				
			||||||
 | 
					phys_addr_t __init_memblock memblock_find_in_range(phys_addr_t start, phys_addr_t end,
 | 
				
			||||||
 | 
										phys_addr_t size, phys_addr_t align)
 | 
				
			||||||
{
 | 
					{
 | 
				
			||||||
	long i;
 | 
						long i;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					@ -132,14 +135,6 @@ static phys_addr_t __init_memblock memblock_find_base(phys_addr_t size,
 | 
				
			||||||
	return 0;
 | 
						return 0;
 | 
				
			||||||
}
 | 
					}
 | 
				
			||||||
 | 
					
 | 
				
			||||||
/*
 | 
					 | 
				
			||||||
 * Find a free area with specified alignment in a specific range.
 | 
					 | 
				
			||||||
 */
 | 
					 | 
				
			||||||
u64 __init_memblock memblock_find_in_range(u64 start, u64 end, u64 size, u64 align)
 | 
					 | 
				
			||||||
{
 | 
					 | 
				
			||||||
	return memblock_find_base(size, align, start, end);
 | 
					 | 
				
			||||||
}
 | 
					 | 
				
			||||||
 | 
					 | 
				
			||||||
/*
 | 
					/*
 | 
				
			||||||
 * Free memblock.reserved.regions
 | 
					 * Free memblock.reserved.regions
 | 
				
			||||||
 */
 | 
					 */
 | 
				
			||||||
| 
						 | 
					@ -216,7 +211,7 @@ static int __init_memblock memblock_double_array(struct memblock_type *type)
 | 
				
			||||||
		new_array = kmalloc(new_size, GFP_KERNEL);
 | 
							new_array = kmalloc(new_size, GFP_KERNEL);
 | 
				
			||||||
		addr = new_array ? __pa(new_array) : 0;
 | 
							addr = new_array ? __pa(new_array) : 0;
 | 
				
			||||||
	} else
 | 
						} else
 | 
				
			||||||
		addr = memblock_find_base(new_size, sizeof(phys_addr_t), 0, MEMBLOCK_ALLOC_ACCESSIBLE);
 | 
							addr = memblock_find_in_range(0, MEMBLOCK_ALLOC_ACCESSIBLE, new_size, sizeof(phys_addr_t));
 | 
				
			||||||
	if (!addr) {
 | 
						if (!addr) {
 | 
				
			||||||
		pr_err("memblock: Failed to double %s array from %ld to %ld entries !\n",
 | 
							pr_err("memblock: Failed to double %s array from %ld to %ld entries !\n",
 | 
				
			||||||
		       memblock_type_name(type), type->max, type->max * 2);
 | 
							       memblock_type_name(type), type->max, type->max * 2);
 | 
				
			||||||
| 
						 | 
					@ -477,7 +472,7 @@ phys_addr_t __init __memblock_alloc_base(phys_addr_t size, phys_addr_t align, ph
 | 
				
			||||||
	 */
 | 
						 */
 | 
				
			||||||
	size = round_up(size, align);
 | 
						size = round_up(size, align);
 | 
				
			||||||
 | 
					
 | 
				
			||||||
	found = memblock_find_base(size, align, 0, max_addr);
 | 
						found = memblock_find_in_range(0, max_addr, size, align);
 | 
				
			||||||
	if (found && !memblock_add_region(&memblock.reserved, found, size))
 | 
						if (found && !memblock_add_region(&memblock.reserved, found, size))
 | 
				
			||||||
		return found;
 | 
							return found;
 | 
				
			||||||
 | 
					
 | 
				
			||||||
| 
						 | 
					
 | 
				
			||||||
		Loading…
	
		Reference in a new issue