X-Git-Url: http://review.tizen.org/git/?a=blobdiff_plain;f=mm%2Fmemblock.c;h=0739dc1b4095479007493480287a3938bb7876de;hb=a527e8d4f7ae0e1d6a3c267f31e13b1d2a198508;hp=9c0aeef194404a93a0e64f94a25c337ff301749e;hpb=d4a63a83933bcd1ef4f3ff6e8637e187dea25632;p=platform%2Fadaptation%2Frenesas_rcar%2Frenesas_kernel.git diff --git a/mm/memblock.c b/mm/memblock.c index 9c0aeef..0739dc1 100644 --- a/mm/memblock.c +++ b/mm/memblock.c @@ -183,8 +183,7 @@ phys_addr_t __init_memblock memblock_find_in_range_node(phys_addr_t size, phys_addr_t align, phys_addr_t start, phys_addr_t end, int nid) { - int ret; - phys_addr_t kernel_end; + phys_addr_t kernel_end, ret; /* pump up @end */ if (end == MEMBLOCK_ALLOC_ACCESSIBLE) @@ -984,9 +983,6 @@ static phys_addr_t __init memblock_alloc_base_nid(phys_addr_t size, if (!align) align = SMP_CACHE_BYTES; - /* align @size to avoid excessive fragmentation on reserved array */ - size = round_up(size, align); - found = memblock_find_in_range_node(size, align, 0, max_addr, nid); if (found && !memblock_reserve(found, size)) return found; @@ -1080,8 +1076,8 @@ static void * __init memblock_virt_alloc_internal( if (!align) align = SMP_CACHE_BYTES; - /* align @size to avoid excessive fragmentation on reserved array */ - size = round_up(size, align); + if (max_addr > memblock.current_limit) + max_addr = memblock.current_limit; again: alloc = memblock_find_in_range_node(size, align, min_addr, max_addr,