aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorHeinrich Schuchardt <xypron.glpk@gmx.de>2021-05-12 18:38:51 +0200
committerSimon Glass <sjg@chromium.org>2021-07-06 10:38:03 -0600
commit825a9a94e1a5795e545156ead664a85403cda0e1 (patch)
tree45ec30728735831e14856d371112daaef89c44a1
parent3beba4ad34649e053b97c5a61cd7de55bc718866 (diff)
downloadu-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.c3
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);
}