mirror of
https://github.com/xemu-project/xemu.git
synced 2025-02-08 13:17:52 +00:00
linux-user/nios2: Use set_sigmask in do_rt_sigreturn
Using do_sigprocmask directly was incorrect, as it will leave the signal blocked by the outer layers of linux-user. Reviewed-by: Laurent Vivier <laurent@vivier.eu> Signed-off-by: Richard Henderson <richard.henderson@linaro.org> Message-Id: <20211221025012.1057923-8-richard.henderson@linaro.org> Signed-off-by: Laurent Vivier <laurent@vivier.eu>
This commit is contained in:
parent
7a83cbb0b0
commit
155fff93f8
@ -205,7 +205,7 @@ long do_rt_sigreturn(CPUNios2State *env)
|
||||
}
|
||||
|
||||
target_to_host_sigset(&set, &frame->uc.tuc_sigmask);
|
||||
do_sigprocmask(SIG_SETMASK, &set, NULL);
|
||||
set_sigmask(&set);
|
||||
|
||||
if (rt_restore_ucontext(env, &frame->uc, &rval)) {
|
||||
goto badframe;
|
||||
|
@ -258,7 +258,6 @@ int do_sigprocmask(int how, const sigset_t *set, sigset_t *oldset)
|
||||
return 0;
|
||||
}
|
||||
|
||||
#if !defined(TARGET_NIOS2)
|
||||
/* Just set the guest's signal mask to the specified value; the
|
||||
* caller is assumed to have called block_signals() already.
|
||||
*/
|
||||
@ -268,7 +267,6 @@ void set_sigmask(const sigset_t *set)
|
||||
|
||||
ts->signal_mask = *set;
|
||||
}
|
||||
#endif
|
||||
|
||||
/* sigaltstack management */
|
||||
|
||||
|
Loading…
x
Reference in New Issue
Block a user