From 91256b43d33e71664abf059cb3dacdbe64652933 Mon Sep 17 00:00:00 2001 From: Gavin Shan Date: Tue, 29 May 2012 15:06:50 -0700 Subject: [PATCH] --- yaml --- r: 308889 b: refs/heads/master c: 4e2f07750d9a94e8f23e86408df5ab95be88bf11 h: refs/heads/master i: 308887: 9730c5e3607f641328171cac17fa7095d626047d v: v3 --- [refs] | 2 +- trunk/mm/memblock.c | 5 +++-- 2 files changed, 4 insertions(+), 3 deletions(-) diff --git a/[refs] b/[refs] index 050f292c5e28..4786c3a4c00d 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 5bf5f03c271907978489868a4c72aeb42b5127d2 +refs/heads/master: 4e2f07750d9a94e8f23e86408df5ab95be88bf11 diff --git a/trunk/mm/memblock.c b/trunk/mm/memblock.c index a44eab3157f8..eae06ea3aa50 100644 --- a/trunk/mm/memblock.c +++ b/trunk/mm/memblock.c @@ -212,14 +212,15 @@ static int __init_memblock memblock_double_array(struct memblock_type *type) if (use_slab) { new_array = kmalloc(new_size, GFP_KERNEL); addr = new_array ? __pa(new_array) : 0; - } else + } else { addr = memblock_find_in_range(0, MEMBLOCK_ALLOC_ACCESSIBLE, new_size, sizeof(phys_addr_t)); + new_array = addr ? __va(addr) : 0; + } if (!addr) { pr_err("memblock: Failed to double %s array from %ld to %ld entries !\n", memblock_type_name(type), type->max, type->max * 2); return -1; } - new_array = __va(addr); memblock_dbg("memblock: %s array is doubled to %ld at [%#010llx-%#010llx]", memblock_type_name(type), type->max * 2, (u64)addr, (u64)addr + new_size - 1);