Merge tag 'linux-can-next-for-3.15-20140212' of git://gitorious.org/linux-can/linux...
[linux-2.6-block.git] / mm / memblock.c
index 9c0aeef194404a93a0e64f94a25c337ff301749e..39a31e7f004505991e37219bdb1e17f571efb933 100644 (file)
@@ -984,9 +984,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 +1077,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,