summaryrefslogtreecommitdiff
path: root/arch/sandbox
diff options
context:
space:
mode:
authorHeinrich Schuchardt <xypron.glpk@gmx.de>2021-07-05 19:43:00 +0200
committerSimon Glass <sjg@chromium.org>2021-07-21 10:27:35 -0600
commitfd25ca3275946476d5c3fa32e3e7e3087fa5c572 (patch)
tree715bfe00975f488dd3b515099cd061557358bee2 /arch/sandbox
parent03ebc20de3b30fca5230a4c73cf4494b0d8d8d08 (diff)
downloadu-boot-fd25ca3275946476d5c3fa32e3e7e3087fa5c572.tar.gz
u-boot-fd25ca3275946476d5c3fa32e3e7e3087fa5c572.tar.bz2
u-boot-fd25ca3275946476d5c3fa32e3e7e3087fa5c572.zip
sandbox: don't set SA_NODEFER in signal handler
The sandbox can handle signals. Due to a damaged global data pointer additional exceptions in the signal handler may occur leading to an endless loop. In this case leave the handling of the secondary exception to the operating system. Signed-off-by: Heinrich Schuchardt <xypron.glpk@gmx.de> Reviewed-by: Simon Glass <sjg@chromium.org>
Diffstat (limited to 'arch/sandbox')
-rw-r--r--arch/sandbox/cpu/os.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/arch/sandbox/cpu/os.c b/arch/sandbox/cpu/os.c
index a8aa9def27..1103530941 100644
--- a/arch/sandbox/cpu/os.c
+++ b/arch/sandbox/cpu/os.c
@@ -226,7 +226,7 @@ int os_setup_signal_handlers(void)
act.sa_sigaction = os_signal_handler;
sigemptyset(&act.sa_mask);
- act.sa_flags = SA_SIGINFO | SA_NODEFER;
+ act.sa_flags = SA_SIGINFO;
if (sigaction(SIGILL, &act, NULL) ||
sigaction(SIGBUS, &act, NULL) ||
sigaction(SIGSEGV, &act, NULL))