diff options
author | Andreas Dannenberg <dannenberg@ti.com> | 2019-03-27 13:17:26 -0500 |
---|---|---|
committer | Tom Rini <trini@konsulko.com> | 2019-04-23 17:57:27 -0400 |
commit | 4c6be01c2719e78cd7ff257dd65a666623566863 (patch) | |
tree | cd1c39373bddbaa2ffed7ef0929e080fec02e744 /common/dlmalloc.c | |
parent | 443b3ce5cf00995a12e0dcaab6d4963daefe511e (diff) | |
download | u-boot-4c6be01c2719e78cd7ff257dd65a666623566863.tar.gz u-boot-4c6be01c2719e78cd7ff257dd65a666623566863.tar.bz2 u-boot-4c6be01c2719e78cd7ff257dd65a666623566863.zip |
malloc: Fix memalign not honoring alignment prior to full malloc init
When using memalign() in a scenario where U-Boot is configured for full
malloc support with simple malloc not explicitly enabled and before the
full malloc support is initialized, a memory block is being allocated
and returned without the alignment parameter getting honored.
Fix this issue by replacing the existing memalign pre-full malloc init
logic with a call to memalign_simple() this way ensuring proper alignment
of the returned memory block.
Fixes: ee038c58d519 ("malloc: Use malloc simple before malloc is fully initialized in memalign()")
Signed-off-by: Andreas Dannenberg <dannenberg@ti.com>
Reviewed-by: Lokesh Vutla <lokeshvutla@ti.com>
Diffstat (limited to 'common/dlmalloc.c')
-rw-r--r-- | common/dlmalloc.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/common/dlmalloc.c b/common/dlmalloc.c index edaad299bb..6f12a18d54 100644 --- a/common/dlmalloc.c +++ b/common/dlmalloc.c @@ -1893,8 +1893,7 @@ Void_t* mEMALIGn(alignment, bytes) size_t alignment; size_t bytes; #if CONFIG_VAL(SYS_MALLOC_F_LEN) if (!(gd->flags & GD_FLG_FULL_MALLOC_INIT)) { - nb = roundup(bytes, alignment); - return malloc_simple(nb); + return memalign_simple(alignment, bytes); } #endif |