mirror of
https://source.denx.de/u-boot/u-boot.git
synced 2026-05-04 20:26:13 +02:00
lmb: optimise the lmb allocation functions
The actual logic to allocate a region of memory is in the _lmb_alloc_base() function. The lmb_alloc() API function calls lmb_alloc_base(), which then calls _lmb_alloc_base() to do the allocation. Instead, call the _lmb_alloc_base() directly from both the allocation API's, and move the error message to the _lmb_alloc_base(). Signed-off-by: Sughosh Ganu <sughosh.ganu@linaro.org>
This commit is contained in:
parent
fa5b4f5a5f
commit
2bf5811e22
16
lib/lmb.c
16
lib/lmb.c
@ -724,26 +724,22 @@ static phys_addr_t _lmb_alloc_base(phys_size_t size, ulong align,
|
||||
base = ALIGN_DOWN(res_base - size, align);
|
||||
}
|
||||
}
|
||||
|
||||
log_debug("%s: Failed to allocate 0x%lx bytes below 0x%lx\n",
|
||||
__func__, (ulong)size, (ulong)max_addr);
|
||||
|
||||
return 0;
|
||||
}
|
||||
|
||||
phys_addr_t lmb_alloc(phys_size_t size, ulong align)
|
||||
{
|
||||
return lmb_alloc_base(size, align, LMB_ALLOC_ANYWHERE, LMB_NONE);
|
||||
return _lmb_alloc_base(size, align, LMB_ALLOC_ANYWHERE, LMB_NONE);
|
||||
}
|
||||
|
||||
phys_addr_t lmb_alloc_base(phys_size_t size, ulong align, phys_addr_t max_addr,
|
||||
uint flags)
|
||||
{
|
||||
phys_addr_t alloc;
|
||||
|
||||
alloc = _lmb_alloc_base(size, align, max_addr, flags);
|
||||
|
||||
if (alloc == 0)
|
||||
printf("ERROR: Failed to allocate 0x%lx bytes below 0x%lx.\n",
|
||||
(ulong)size, (ulong)max_addr);
|
||||
|
||||
return alloc;
|
||||
return _lmb_alloc_base(size, align, max_addr, flags);
|
||||
}
|
||||
|
||||
phys_addr_t lmb_alloc_addr(phys_addr_t base, phys_size_t size, u32 flags)
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user