[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] linux-user/syscall.c: Handle SH4's exceptional
From: |
Laurent Vivier |
Subject: |
Re: [Qemu-devel] [PATCH] linux-user/syscall.c: Handle SH4's exceptional alignment for p{read, write}64 |
Date: |
Fri, 15 Sep 2017 09:27:22 +0200 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.3.0 |
Le 15/09/2017 à 08:58, James Clarke a écrit :
> Fixes: https://bugs.launchpad.net/qemu/+bug/1716767
> Signed-off-by: James Clarke <address@hidden>
> ---
> linux-user/syscall.c | 12 ++++++++++++
> 1 file changed, 12 insertions(+)
>
> diff --git a/linux-user/syscall.c b/linux-user/syscall.c
> index 9b6364a266..24d6a81c21 100644
> --- a/linux-user/syscall.c
> +++ b/linux-user/syscall.c
> @@ -10495,20 +10495,32 @@ abi_long do_syscall(void *cpu_env, int num,
> abi_long arg1,
> #endif
> #ifdef TARGET_NR_pread64
> case TARGET_NR_pread64:
> +#if defined(TARGET_SH4)
> + /* SH4 doesn't align register pairs, except for p{read,write}64 */
> + arg4 = arg5;
> + arg5 = arg6;
> +#else
> if (regpairs_aligned(cpu_env)) {
> arg4 = arg5;
> arg5 = arg6;
> }
> +#endif
> if (!(p = lock_user(VERIFY_WRITE, arg2, arg3, 0)))
> goto efault;
> ret = get_errno(pread64(arg1, p, arg3, target_offset64(arg4, arg5)));
> unlock_user(p, arg2, ret);
> break;
> case TARGET_NR_pwrite64:
> +#if defined(TARGET_SH4)
> + /* SH4 doesn't align register pairs, except for p{read,write}64 */
> + arg4 = arg5;
> + arg5 = arg6;
> +#else
> if (regpairs_aligned(cpu_env)) {
> arg4 = arg5;
> arg5 = arg6;
> }
> +#endif
> if (!(p = lock_user(VERIFY_READ, arg2, arg3, 1)))
> goto efault;
> ret = get_errno(pwrite64(arg1, p, arg3, target_offset64(arg4,
> arg5)));
> --
> 2.13.2
>
Reviewed-by: Laurent Vivier <address@hidden>
- [Qemu-devel] [PATCH] linux-user/syscall.c: Handle SH4's exceptional alignment for p{read, write}64, James Clarke, 2017/09/15
- Re: [Qemu-devel] [PATCH] linux-user/syscall.c: Handle SH4's exceptional alignment for p{read, write}64,
Laurent Vivier <=
- Re: [Qemu-devel] [PATCH] linux-user/syscall.c: Handle SH4's exceptional alignment for p{read, write}64, John Paul Adrian Glaubitz, 2017/09/15
- Re: [Qemu-devel] [PATCH] linux-user/syscall.c: Handle SH4's exceptional alignment for p{read, write}64, Philippe Mathieu-Daudé, 2017/09/15
- Re: [Qemu-devel] [PATCH] linux-user/syscall.c: Handle SH4's exceptional alignment for p{read, write}64, John Paul Adrian Glaubitz, 2017/09/15
- Re: [Qemu-devel] [PATCH] linux-user/syscall.c: Handle SH4's exceptional alignment for p{read, write}64, Richard Henderson, 2017/09/15
- [Qemu-devel] [PATCH v2] linux-user/syscall.c: Handle SH4's exceptional alignment for p{read, write}64, James Clarke, 2017/09/15
- Re: [Qemu-devel] [PATCH v2] linux-user/syscall.c: Handle SH4's exceptional alignment for p{read, write}64, no-reply, 2017/09/15
- [Qemu-devel] [PATCH v3] linux-user/syscall.c: Handle SH4's exceptional alignment for p{read, write}64, James Clarke, 2017/09/15
- Re: [Qemu-devel] [PATCH v3] linux-user/syscall.c: Handle SH4's exceptional alignment for p{read, write}64, Eric Blake, 2017/09/15
- Re: [Qemu-devel] [PATCH v3] linux-user/syscall.c: Handle SH4's exceptional alignment for p{read, write}64, Laurent Vivier, 2017/09/15
- Re: [Qemu-devel] [PATCH v3] linux-user/syscall.c: Handle SH4's exceptional alignment for p{read, write}64, Richard Henderson, 2017/09/15