Hi Tom et al.,
On Wed, Mar 27, 2019 at 01:17:26PM -0500, Andreas Dannenberg wrote:
> 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 <[email protected]>
Any additonal feedback/comments on this patch?
Thanks, Andreas
> ---
> common/dlmalloc.c | 3 +--
> include/malloc.h | 2 +-
> 2 files changed, 2 insertions(+), 3 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
>
> diff --git a/include/malloc.h b/include/malloc.h
> index b714fedf45..5efa6920b2 100644
> --- a/include/malloc.h
> +++ b/include/malloc.h
> @@ -878,7 +878,6 @@ extern Void_t* sbrk();
> #define memalign memalign_simple
> static inline void free(void *ptr) {}
> void *calloc(size_t nmemb, size_t size);
> -void *memalign_simple(size_t alignment, size_t bytes);
> void *realloc_simple(void *ptr, size_t size);
> void malloc_simple_info(void);
> #else
> @@ -914,6 +913,7 @@ int initf_malloc(void);
>
> /* Simple versions which can be used when space is tight */
> void *malloc_simple(size_t size);
> +void *memalign_simple(size_t alignment, size_t bytes);
>
> #pragma GCC visibility push(hidden)
> # if __STD_C
> --
> 2.17.1
>
_______________________________________________
U-Boot mailing list
[email protected]
https://lists.denx.de/listinfo/u-boot