memblock: Make MEMBLOCK_ERROR be 0
And ensure we don't hand out 0 as a valid allocation. We put the low limit at PAGE_SIZE arbitrarily. Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
This commit is contained in:
		
					parent
					
						
							
								37d8d4bf48
							
						
					
				
			
			
				commit
				
					
						25818f0f28
					
				
			
		
					 2 changed files with 7 additions and 1 deletions
				
			
		|  | @ -19,7 +19,7 @@ | ||||||
| #include <asm/memblock.h> | #include <asm/memblock.h> | ||||||
| 
 | 
 | ||||||
| #define INIT_MEMBLOCK_REGIONS	128 | #define INIT_MEMBLOCK_REGIONS	128 | ||||||
| #define MEMBLOCK_ERROR		(~(phys_addr_t)0) | #define MEMBLOCK_ERROR		0 | ||||||
| 
 | 
 | ||||||
| struct memblock_region { | struct memblock_region { | ||||||
| 	phys_addr_t base; | 	phys_addr_t base; | ||||||
|  |  | ||||||
|  | @ -105,6 +105,12 @@ static phys_addr_t __init memblock_find_region(phys_addr_t start, phys_addr_t en | ||||||
| 	phys_addr_t base, res_base; | 	phys_addr_t base, res_base; | ||||||
| 	long j; | 	long j; | ||||||
| 
 | 
 | ||||||
|  | 	/* Prevent allocations returning 0 as it's also used to
 | ||||||
|  | 	 * indicate an allocation failure | ||||||
|  | 	 */ | ||||||
|  | 	if (start == 0) | ||||||
|  | 		start = PAGE_SIZE; | ||||||
|  | 
 | ||||||
| 	base = memblock_align_down((end - size), align); | 	base = memblock_align_down((end - size), align); | ||||||
| 	while (start <= base) { | 	while (start <= base) { | ||||||
| 		j = memblock_overlaps_region(&memblock.reserved, base, size); | 		j = memblock_overlaps_region(&memblock.reserved, base, size); | ||||||
|  |  | ||||||
		Loading…
	
	Add table
		Add a link
		
	
		Reference in a new issue
	
	 Benjamin Herrenschmidt
				Benjamin Herrenschmidt