diff options
author | Richard Henderson <richard.henderson@linaro.org> | 2022-04-21 08:16:38 -0700 |
---|---|---|
committer | Richard Henderson <richard.henderson@linaro.org> | 2022-04-26 08:16:40 -0700 |
commit | 1b5fb4d252c4403cbb893be6e38a26a119d054ef (patch) | |
tree | af15c502a51f1697c8f7ee22aad24ac6715624ed /linux-user/nios2 | |
parent | dfb810bcaad695f50f2b3e1d105eebeb6a1cea16 (diff) | |
download | qemu-1b5fb4d252c4403cbb893be6e38a26a119d054ef.zip qemu-1b5fb4d252c4403cbb893be6e38a26a119d054ef.tar.gz qemu-1b5fb4d252c4403cbb893be6e38a26a119d054ef.tar.bz2 |
linux-user/nios2: Use QEMU_ESIGRETURN from do_rt_sigreturn
Drop the kernel-specific "pr2" code structure and use
the qemu-specific error return value.
Reviewed-by: Peter Maydell <peter.maydell@linaro.org>
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
Message-Id: <20220421151735.31996-8-richard.henderson@linaro.org>
Diffstat (limited to 'linux-user/nios2')
-rw-r--r-- | linux-user/nios2/signal.c | 12 |
1 files changed, 4 insertions, 8 deletions
diff --git a/linux-user/nios2/signal.c b/linux-user/nios2/signal.c index 133bc05..9aa525e 100644 --- a/linux-user/nios2/signal.c +++ b/linux-user/nios2/signal.c @@ -77,8 +77,7 @@ static void rt_setup_ucontext(struct target_ucontext *uc, CPUNios2State *env) __put_user(env->regs[R_SP], &gregs[28]); } -static int rt_restore_ucontext(CPUNios2State *env, struct target_ucontext *uc, - int *pr2) +static int rt_restore_ucontext(CPUNios2State *env, struct target_ucontext *uc) { int temp; unsigned long *gregs = uc->tuc_mcontext.gregs; @@ -128,8 +127,6 @@ static int rt_restore_ucontext(CPUNios2State *env, struct target_ucontext *uc, __get_user(env->regs[R_SP], &gregs[28]); target_restore_altstack(&uc->tuc_stack, env); - - *pr2 = env->regs[2]; return 0; } @@ -191,7 +188,6 @@ long do_rt_sigreturn(CPUNios2State *env) abi_ulong frame_addr = env->regs[R_SP]; struct target_rt_sigframe *frame; sigset_t set; - int rval; if (!lock_user_struct(VERIFY_READ, frame, frame_addr, 1)) { goto badframe; @@ -200,15 +196,15 @@ long do_rt_sigreturn(CPUNios2State *env) target_to_host_sigset(&set, &frame->uc.tuc_sigmask); set_sigmask(&set); - if (rt_restore_ucontext(env, &frame->uc, &rval)) { + if (rt_restore_ucontext(env, &frame->uc)) { goto badframe; } unlock_user_struct(frame, frame_addr, 0); - return rval; + return -QEMU_ESIGRETURN; badframe: unlock_user_struct(frame, frame_addr, 0); force_sig(TARGET_SIGSEGV); - return 0; + return -QEMU_ESIGRETURN; } |