diff options
author | Heinrich Schuchardt <xypron.glpk@gmx.de> | 2021-05-12 18:38:51 +0200 |
---|---|---|
committer | Simon Glass <sjg@chromium.org> | 2021-07-06 10:38:03 -0600 |
commit | 825a9a94e1a5795e545156ead664a85403cda0e1 (patch) | |
tree | 45ec30728735831e14856d371112daaef89c44a1 | |
parent | 3beba4ad34649e053b97c5a61cd7de55bc718866 (diff) | |
download | u-boot-825a9a94e1a5795e545156ead664a85403cda0e1.zip u-boot-825a9a94e1a5795e545156ead664a85403cda0e1.tar.gz u-boot-825a9a94e1a5795e545156ead664a85403cda0e1.tar.bz2 |
sandbox: fix sandbox_reset()
state_uninit() and dm_uninit() are mutually exclusive:
state_uninit() prints via drivers. So it cannot be executed after
dm_uninit().
dm_uninit() requires memory. So it cannot be executed after state_uninit()
which releases all memory.
Just skip dm_uninit() when resetting the sandbox. We will wake up in a new
process and allocate new memory. So this cleanup is not required. We don't
do it in sandbox_exit() either.
This avoids a segmentation error when efi_reset_system_boottime() is
invoked by a UEFI application.
Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de>
Reviewed-by: Simon Glass <sjg@chromium.org>
-rw-r--r-- | arch/sandbox/cpu/start.c | 3 |
1 files changed, 0 insertions, 3 deletions
diff --git a/arch/sandbox/cpu/start.c b/arch/sandbox/cpu/start.c index ad17e17..777db4e 100644 --- a/arch/sandbox/cpu/start.c +++ b/arch/sandbox/cpu/start.c @@ -436,9 +436,6 @@ void sandbox_reset(void) if (state_uninit()) os_exit(2); - if (dm_uninit()) - os_exit(2); - /* Restart U-Boot */ os_relaunch(os_argv); } |