[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH 04/11] linux-user: Use restrictive mask when cal
From: |
Sergey Fedorov |
Subject: |
Re: [Qemu-devel] [PATCH 04/11] linux-user: Use restrictive mask when calling cpsr_write() |
Date: |
Thu, 18 Feb 2016 20:42:45 +0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:38.0) Gecko/20100101 Thunderbird/38.5.1 |
On 15.02.2016 20:22, Peter Maydell wrote:
> When linux-user code is calling cpsr_write(), use a restrictive
> mask to ensure we are limiting the set of CPSR bits we update.
> In particular, don't allow the mode bits to be changed.
>
> Signed-off-by: Peter Maydell <address@hidden>
Reviewed-by: Sergey Fedorov <address@hidden>
> ---
> linux-user/main.c | 3 ++-
> linux-user/signal.c | 2 +-
> 2 files changed, 3 insertions(+), 2 deletions(-)
>
> diff --git a/linux-user/main.c b/linux-user/main.c
> index 1269470..c467fa7 100644
> --- a/linux-user/main.c
> +++ b/linux-user/main.c
> @@ -4446,7 +4446,8 @@ int main(int argc, char **argv, char **envp)
> #elif defined(TARGET_ARM)
> {
> int i;
> - cpsr_write(env, regs->uregs[16], 0xffffffff, CPSRWriteByInstr);
> + cpsr_write(env, regs->uregs[16], CPSR_USER | CPSR_EXEC,
> + CPSRWriteByInstr);
> for(i = 0; i < 16; i++) {
> env->regs[i] = regs->uregs[i];
> }
> diff --git a/linux-user/signal.c b/linux-user/signal.c
> index 82f81c7..962111c 100644
> --- a/linux-user/signal.c
> +++ b/linux-user/signal.c
> @@ -1611,7 +1611,7 @@ setup_return(CPUARMState *env, struct target_sigaction
> *ka,
> env->regs[13] = frame_addr;
> env->regs[14] = retcode;
> env->regs[15] = handler & (thumb ? ~1 : ~3);
> - cpsr_write(env, cpsr, 0xffffffff, CPSRWriteByInstr);
> + cpsr_write(env, cpsr, CPSR_IT | CPSR_T, CPSRWriteByInstr);
> }
>
> static abi_ulong *setup_sigframe_v2_vfp(abi_ulong *regspace, CPUARMState
> *env)
- [Qemu-devel] [PATCH 00/11] target-arm: clean up cpsr_write mode changing, Peter Maydell, 2016/02/15
- [Qemu-devel] [PATCH 08/11] target-arm: Forbid mode switch to Mon from Secure EL1, Peter Maydell, 2016/02/15
- [Qemu-devel] [PATCH 11/11] target-arm: Make Monitor->NS PL1 mode changes illegal if HCR.TGE is 1, Peter Maydell, 2016/02/15
- [Qemu-devel] [PATCH 04/11] linux-user: Use restrictive mask when calling cpsr_write(), Peter Maydell, 2016/02/15
- Re: [Qemu-devel] [PATCH 04/11] linux-user: Use restrictive mask when calling cpsr_write(),
Sergey Fedorov <=
- [Qemu-devel] [PATCH 09/11] target-arm: In v8, make illegal AArch32 mode changes set PSTATE.IL, Peter Maydell, 2016/02/15
- [Qemu-devel] [PATCH 02/11] target-arm: Add write_type argument to cpsr_write(), Peter Maydell, 2016/02/15
- [Qemu-devel] [PATCH 07/11] target-arm: Add Hyp mode checks to bad_mode_switch(), Peter Maydell, 2016/02/15
- [Qemu-devel] [PATCH 05/11] target-arm: In cpsr_write() ignore mode switches from User mode, Peter Maydell, 2016/02/15
- [Qemu-devel] [PATCH 01/11] target-arm: Give CPSR setting on 32-bit exception return its own helper, Peter Maydell, 2016/02/15