diff options
Diffstat (limited to 'mm/bootmem.c')
| -rw-r--r-- | mm/bootmem.c | 6 | 
1 files changed, 5 insertions, 1 deletions
diff --git a/mm/bootmem.c b/mm/bootmem.c index ec4fcb7a56c..bcb63ac48cc 100644 --- a/mm/bootmem.c +++ b/mm/bootmem.c @@ -698,7 +698,7 @@ void * __init __alloc_bootmem(unsigned long size, unsigned long align,  	return ___alloc_bootmem(size, align, goal, limit);  } -static void * __init ___alloc_bootmem_node_nopanic(pg_data_t *pgdat, +void * __init ___alloc_bootmem_node_nopanic(pg_data_t *pgdat,  				unsigned long size, unsigned long align,  				unsigned long goal, unsigned long limit)  { @@ -710,6 +710,10 @@ again:  	if (ptr)  		return ptr; +	/* do not panic in alloc_bootmem_bdata() */ +	if (limit && goal + size > limit) +		limit = 0; +  	ptr = alloc_bootmem_bdata(pgdat->bdata, size, align, goal, limit);  	if (ptr)  		return ptr;  |