forked from mirrors/linux
		
	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…
	
		Reference in a new issue