[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH v2 09/27] linux-user/sh4: Clean env->flags on si
From: |
Aurelien Jarno |
Subject: |
Re: [Qemu-devel] [PATCH v2 09/27] linux-user/sh4: Clean env->flags on signal boundaries |
Date: |
Sun, 16 Jul 2017 00:59:34 +0200 |
User-agent: |
NeoMutt/20170113 (1.7.2) |
On 2017-07-06 16:20, Richard Henderson wrote:
> If a signal is delivered during the execution of a delay slot,
> or a gUSA region, clear those bits from the environment so that
> the signal handler does not start in that same state.
How are signals delivered in linux-user? At least in system mode we
forbid interrupts in the delay slot (see commit 5c6f3eb7db), as the
manual clearly declare them as indivisible. Maybe the same should be
done for linux-user?
>
> Cleaning the bits on signal return is paranoid good sense.
>
> Signed-off-by: Richard Henderson <address@hidden>
> ---
> linux-user/signal.c | 3 +++
> 1 file changed, 3 insertions(+)
>
> diff --git a/linux-user/signal.c b/linux-user/signal.c
> index a537778..8c0b851 100644
> --- a/linux-user/signal.c
> +++ b/linux-user/signal.c
> @@ -3544,6 +3544,7 @@ static void restore_sigcontext(CPUSH4State *regs,
> struct target_sigcontext *sc)
> __get_user(regs->fpul, &sc->sc_fpul);
>
> regs->tra = -1; /* disable syscall checks */
> + regs->flags &= ~(DELAY_SLOT_MASK | GUSA_MASK);
> }
>
> static void setup_frame(int sig, struct target_sigaction *ka,
Why not using TB_FLAG_ENVFLAGS_MASK introduced earlier in this patch
series?
--
Aurelien Jarno GPG: 4096R/1DDD8C9B
address@hidden http://www.aurel32.net
Re: [Qemu-devel] [PATCH v2 08/27] linux-user/sh4: Notice gUSA regions during signal delivery, Laurent Vivier, 2017/07/07
Re: [Qemu-devel] [PATCH v2 08/27] linux-user/sh4: Notice gUSA regions during signal delivery, Aurelien Jarno, 2017/07/15
[Qemu-devel] [PATCH v2 09/27] linux-user/sh4: Clean env->flags on signal boundaries, Richard Henderson, 2017/07/06
- Re: [Qemu-devel] [PATCH v2 09/27] linux-user/sh4: Clean env->flags on signal boundaries,
Aurelien Jarno <=
[Qemu-devel] [PATCH v2 10/27] target/sh4: Hoist register bank selection, Richard Henderson, 2017/07/06
[Qemu-devel] [PATCH v2 11/27] target/sh4: Unify cpu_fregs into FREG, Richard Henderson, 2017/07/06
[Qemu-devel] [PATCH v2 12/27] target/sh4: Pass DisasContext to fpr64 routines, Richard Henderson, 2017/07/06