mirror of
https://github.com/AsahiLinux/u-boot
synced 2024-11-10 23:24:38 +00:00
malloc_simple: Return NULL on malloc failure rather then calling panic()
All callers of malloc should already do error checking, and may even be able to continue without the alloc succeeding. Moreover, common/malloc_simple.c is the only user of .rodata.str1.1 in common/built-in.o when building the SPL, triggering this gcc bug: https://gcc.gnu.org/bugzilla/show_bug.cgi?id=54303 Causing .rodata to grow with e.g. 0xc21 bytes, nullifying all benefits of using malloc_simple in the first place. Signed-off-by: Hans de Goede <hdegoede@redhat.com> Acked-by: Simon Glass <sjg@chromium.org>
This commit is contained in:
parent
a3e757a5d2
commit
2c8571703a
1 changed files with 1 additions and 1 deletions
|
@ -19,7 +19,7 @@ void *malloc_simple(size_t bytes)
|
||||||
|
|
||||||
new_ptr = gd->malloc_ptr + bytes;
|
new_ptr = gd->malloc_ptr + bytes;
|
||||||
if (new_ptr > gd->malloc_limit)
|
if (new_ptr > gd->malloc_limit)
|
||||||
panic("Out of pre-reloc memory");
|
return NULL;
|
||||||
ptr = map_sysmem(gd->malloc_base + gd->malloc_ptr, bytes);
|
ptr = map_sysmem(gd->malloc_base + gd->malloc_ptr, bytes);
|
||||||
gd->malloc_ptr = ALIGN(new_ptr, sizeof(new_ptr));
|
gd->malloc_ptr = ALIGN(new_ptr, sizeof(new_ptr));
|
||||||
return ptr;
|
return ptr;
|
||||||
|
|
Loading…
Reference in a new issue