[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
[PATCH v2 7/8] linux-user/nios2: Use QEMU_ESIGRETURN from do_rt_sigretur
From: |
Richard Henderson |
Subject: |
[PATCH v2 7/8] linux-user/nios2: Use QEMU_ESIGRETURN from do_rt_sigreturn |
Date: |
Sat, 26 Mar 2022 07:25:00 -0600 |
Drop the kernel-specific "pr2" code structure and use
the qemu-specific error return value.
Signed-off-by: Richard Henderson <richard.henderson@linaro.org>
---
linux-user/nios2/signal.c | 12 ++++--------
1 file changed, 4 insertions(+), 8 deletions(-)
diff --git a/linux-user/nios2/signal.c b/linux-user/nios2/signal.c
index 133bc05673..9aa525e723 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;
}
--
2.25.1
- [PATCH v2 01/39] util/log: Drop manual log buffering, (continued)
- [PATCH v2 01/39] util/log: Drop manual log buffering, Richard Henderson, 2022/03/26
- [PATCH v2 3/8] linux-user/nios2: Drop syscall 0 "workaround", Richard Henderson, 2022/03/26
- [PATCH v2 02/39] target/hexagon: Remove qemu_set_log in hexagon_translate_init, Richard Henderson, 2022/03/26
- [PATCH v2 03/39] util/log: Return bool from qemu_set_log_filename, Richard Henderson, 2022/03/26
- [PATCH v2 4/8] linux-user/nios2: Adjust error return, Richard Henderson, 2022/03/26
- [PATCH v2 05/39] os-posix: Use qemu_log_enabled, Richard Henderson, 2022/03/26
- [PATCH v2 5/8] linux-user/nios2: Handle special qemu syscall return values, Richard Henderson, 2022/03/26
- [PATCH v2 6/8] linux-user/nios2: Remove do_sigreturn, Richard Henderson, 2022/03/26
- [PATCH v2 04/39] util/log: Pass Error pointer to qemu_set_log, Richard Henderson, 2022/03/26
- [PATCH v2 06/39] util/log: Move qemu_log_lock, qemu_log_unlock out of line, Richard Henderson, 2022/03/26
- [PATCH v2 7/8] linux-user/nios2: Use QEMU_ESIGRETURN from do_rt_sigreturn,
Richard Henderson <=
- [PATCH v2 07/39] util/log: Rename qemu_log_lock to qemu_log_trylock, Richard Henderson, 2022/03/26
- [PATCH v2 08/39] hw/xen: Split out xen_pv_output_msg, Richard Henderson, 2022/03/26
- [PATCH v2 8/8] tests/tcg/nios2: Re-enable linux-user tests, Richard Henderson, 2022/03/26
- [PATCH v2 10/39] util/log: Remove qemu_log_vprintf, Richard Henderson, 2022/03/26
- [PATCH v2 09/39] *: Use fprintf between qemu_log_trylock/unlock, Richard Henderson, 2022/03/26
- [PATCH v2 11/39] tcg: Pass the locked filepointer to tcg_dump_ops, Richard Henderson, 2022/03/26
- [PATCH v2 13/39] exec/log: Remove log_disas and log_target_disas, Richard Henderson, 2022/03/26
- [PATCH v2 12/39] exec/translator: Pass the locked filepointer to disas_log hook, Richard Henderson, 2022/03/26
- [PATCH v2 19/39] util/log: Remove qemu_log_flush, Richard Henderson, 2022/03/26
- [PATCH v2 16/39] util/log: Use qemu_log_trylock/unlock in qemu_log, Richard Henderson, 2022/03/26