diff options
-rw-r--r-- | mm/memblock.c | 5 |
1 files changed, 3 insertions, 2 deletions
diff --git a/mm/memblock.c b/mm/memblock.c index a44eab3157f8..eae06ea3aa50 100644 --- a/mm/memblock.c +++ b/mm/memblock.c | |||
@@ -212,14 +212,15 @@ static int __init_memblock memblock_double_array(struct memblock_type *type) | |||
212 | if (use_slab) { | 212 | if (use_slab) { |
213 | new_array = kmalloc(new_size, GFP_KERNEL); | 213 | new_array = kmalloc(new_size, GFP_KERNEL); |
214 | addr = new_array ? __pa(new_array) : 0; | 214 | addr = new_array ? __pa(new_array) : 0; |
215 | } else | 215 | } else { |
216 | addr = memblock_find_in_range(0, MEMBLOCK_ALLOC_ACCESSIBLE, new_size, sizeof(phys_addr_t)); | 216 | addr = memblock_find_in_range(0, MEMBLOCK_ALLOC_ACCESSIBLE, new_size, sizeof(phys_addr_t)); |
217 | new_array = addr ? __va(addr) : 0; | ||
218 | } | ||
217 | if (!addr) { | 219 | if (!addr) { |
218 | pr_err("memblock: Failed to double %s array from %ld to %ld entries !\n", | 220 | pr_err("memblock: Failed to double %s array from %ld to %ld entries !\n", |
219 | memblock_type_name(type), type->max, type->max * 2); | 221 | memblock_type_name(type), type->max, type->max * 2); |
220 | return -1; | 222 | return -1; |
221 | } | 223 | } |
222 | new_array = __va(addr); | ||
223 | 224 | ||
224 | memblock_dbg("memblock: %s array is doubled to %ld at [%#010llx-%#010llx]", | 225 | memblock_dbg("memblock: %s array is doubled to %ld at [%#010llx-%#010llx]", |
225 | memblock_type_name(type), type->max * 2, (u64)addr, (u64)addr + new_size - 1); | 226 | memblock_type_name(type), type->max * 2, (u64)addr, (u64)addr + new_size - 1); |