Hi, On 23 May 2018 at 00:32, Ley Foon Tan <lftan.li...@gmail.com> wrote: > On Sat, May 19, 2018 at 10:37 PM, Simon Glass <s...@chromium.org> wrote: >> Hi Ley, >> >> On 18 May 2018 at 04:03, Ley Foon Tan <ley.foon....@intel.com> wrote: >>> Follow implementation in mALLOc(). Check GD_FLG_FULL_MALLOC_INIT flag and >>> use >>> malloc_simple if GD_FLG_FULL_MALLOC_INIT is unset. Adjust the malloc bytes >>> to align with the requested alignment. >>> >>> The original memalign() function will access mchunkptr struct to adjust the >>> alignment if there is misalignment happen, but mchunkptr struct is not being >>> initialized before full malloc is initialized. This cause the system crash. >>> >>> Signed-off-by: Ley Foon Tan <ley.foon....@intel.com> >>> --- >>> common/dlmalloc.c | 7 +++++++ >>> 1 files changed, 7 insertions(+), 0 deletions(-) >>> >>> diff --git a/common/dlmalloc.c b/common/dlmalloc.c >>> index b395eef..edaad29 100644 >>> --- a/common/dlmalloc.c >>> +++ b/common/dlmalloc.c >>> @@ -1891,6 +1891,13 @@ Void_t* mEMALIGn(alignment, bytes) size_t alignment; >>> size_t bytes; >>> >>> if ((long)bytes < 0) return NULL; >>> >>> +#if CONFIG_VAL(SYS_MALLOC_F_LEN) >> >> How about: >> >> if (IS_ENABLED(CONFIG_SYS_MALLOC_F)) > > I think this is the reason it uses #if CONFIG_VAL(SYS_MALLOC_F_LEN), > same for malloc(). > > "spl: make SPL and normal u-boot stage use independent SYS_MALLOC_F_LEN" > > http://git.denx.de/?p=u-boot.git;a=commit;h=f1896c45cb2f7d8dbed27e784a6459a129fc0762
So how about if (CONFIG_IS_ENABLED(SYS_MALLOC_F_LEN) Or you could use #if if you need to To me it seems better to use the setting itself (i.e. whether the pre-reloc malloc() is enabled) rather than one of its parameters (the size of the region). > > >> >> ? >> >>> + if (!(gd->flags & GD_FLG_FULL_MALLOC_INIT)) { >>> + nb = roundup(bytes, alignment); >>> + return malloc_simple(nb); >>> + } >>> +#endif >>> + >>> /* If need less alignment than we give anyway, just relay to malloc */ >>> >>> if (alignment <= MALLOC_ALIGNMENT) return mALLOc(bytes); >>> -- >>> 1.7.1 Regards, Simon _______________________________________________ U-Boot mailing list U-Boot@lists.denx.de https://lists.denx.de/listinfo/u-boot