On 6/7/20 4:02 PM, Heinrich Schuchardt wrote: > Am June 7, 2020 1:45:53 PM UTC schrieb Simon Glass <[email protected]>: >> Hi Heinrich, >> >> On Thu, 4 Jun 2020 at 11:28, Heinrich Schuchardt <[email protected]> >> wrote: >>> >>> assert() only works in debug mode. So checking a successful memory >>> allocation should not use assert(). >>> >> >> Reviewed-by: Simon Glass <[email protected]> >> >> What sort of environment are you using that returns NULL in this case? > > You will get NULL here if mmap() fails. This should happen if your machine > has less then 128 MiB left over or you increase the RAM size of the sandbox. > > For testing I suggest you increase the sandbox memory size beyond the RAM and > swap size of your computer. > > Best regards > > Heinrich
An excessive RAM sandbox w/o the patch: $ ./u-boot Segmentation fault with the patch $ ./u-boot Out of memory Best regards Heinrich > >> >> Regards, >> Simon >> >> >>> Signed-off-by: Heinrich Schuchardt <[email protected]> >>> --- >>> arch/sandbox/cpu/state.c | 5 ++++- >>> 1 file changed, 4 insertions(+), 1 deletion(-) >>> >>> diff --git a/arch/sandbox/cpu/state.c b/arch/sandbox/cpu/state.c >>> index 1f794123b3..34b6fff7e7 100644 >>> --- a/arch/sandbox/cpu/state.c >>> +++ b/arch/sandbox/cpu/state.c >>> @@ -378,7 +378,10 @@ int state_init(void) >>> >>> state->ram_size = CONFIG_SYS_SDRAM_SIZE; >>> state->ram_buf = os_malloc(state->ram_size); >>> - assert(state->ram_buf); >>> + if (!state->ram_buf) { >>> + printf("Out of memory\n"); >>> + os_exit(1); >>> + } >>> >>> state_reset_for_test(state); >>> /* >>> -- >>> 2.26.2 >>> >

