[U-Boot] [PATCH v8] [RFC] early_malloc for DM added.

Marek Vasut marex at denx.de
Mon Sep 24 16:19:50 CEST 2012


Dear Tomas Hlavacek,

[...]

> >> +static inline void *dmrealloc(void *oldmem, size_t bytes)
> >> +{
> >> +#ifdef CONFIG_SYS_EARLY_MALLOC
> >> +     if (early_malloc_active())
> >> +             return NULL;
> > 
> > I wonder how should this be implemented ... maybe early_malloc + standard
> > memcpy()
> 
> How do you want me to fix all the pointers to the memcpyied part of
> heap then? I think this will not work unless I make some reservations
> for eventual growth for each and every early_mallocated area. And I
> think this is not good idea at all for early_malloc.

What exactly would you need to fix ? It's only a matter of allocating new block, 
copying the existing data there and returning the pointer to the new block, no?

> I think there are two straight-forward possibilities: a) keep the
> empty implementation of dmrealloc() in early stage and avoid using it
> in code which might run in early stage, but retain the dm* version of
> the symbol. b) remove the dmrealloc() entirely which may have certain
> negative consequences, because it might be tempting to mix dmmalloc()
> and (non-dm*) realloc() calls which is obviously wrong.
> 
> Tomas

Best regards,
Marek Vasut


More information about the U-Boot mailing list