/*
* Address comparison utilities
*/
-
-static phys_addr_t __init_memblock memblock_align_down(phys_addr_t addr, phys_addr_t size)
-{
- return addr & ~(size - 1);
-}
-
-static phys_addr_t __init_memblock memblock_align_up(phys_addr_t addr, phys_addr_t size)
-{
- return (addr + (size - 1)) & ~(size - 1);
-}
-
static unsigned long __init_memblock memblock_addrs_overlap(phys_addr_t base1, phys_addr_t size1,
phys_addr_t base2, phys_addr_t size2)
{
if (end < size)
return MEMBLOCK_ERROR;
- base = memblock_align_down((end - size), align);
+ base = round_down(end - size, align);
/* Prevent allocations returning 0 as it's also used to
* indicate an allocation failure
res_base = memblock.reserved.regions[j].base;
if (res_base < size)
break;
- base = memblock_align_down(res_base - size, align);
+ base = round_down(res_base - size, align);
}
return MEMBLOCK_ERROR;
/* We align the size to limit fragmentation. Without this, a lot of
* small allocs quickly eat up the whole reserve array on sparc
*/
- size = memblock_align_up(size, align);
+ size = round_up(size, align);
found = memblock_find_base(size, align, 0, max_addr);
if (found != MEMBLOCK_ERROR &&
start = mp->base;
end = start + mp->size;
- start = memblock_align_up(start, align);
+ start = round_up(start, align);
while (start < end) {
phys_addr_t this_end;
int this_nid;
/* We align the size to limit fragmentation. Without this, a lot of
* small allocs quickly eat up the whole reserve array on sparc
*/
- size = memblock_align_up(size, align);
+ size = round_up(size, align);
/* We do a bottom-up search for a region with the right
* nid since that's easier considering how memblock_nid_range()