[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: [Qemu-devel] [PATCH] linux-user: Fix register used for 6th and 7th s
From: |
Philippe Mathieu-Daudé |
Subject: |
Re: [Qemu-devel] [PATCH] linux-user: Fix register used for 6th and 7th syscall argument on aarch64 |
Date: |
Wed, 24 Jan 2018 08:46:47 -0300 |
User-agent: |
Mozilla/5.0 (X11; Linux x86_64; rv:52.0) Gecko/20100101 Thunderbird/52.5.2 |
I spent the night studying linux-user end figured out the same correct
fix. Just checking morning ML before sending the patch :)
Mine had "Suggested-by: Laurent Vivier <address@hidden>" since he
said on IRC "gdb will help" and indeed single stepping before the
syscall the bug was obvious.
On 01/24/2018 07:13 AM, Guido Günther wrote:
> Unbreaks the testcase from
>
> http://lists.nongnu.org/archive/html/qemu-arm/2018-01/msg00514.html
>
> Thanks to Laurent Vivier for spotting the 7th one.
> Signed-off-by: Guido Günther <address@hidden>
Reviewed-by: Philippe Mathieu-Daudé <address@hidden>
Tested-by: Philippe Mathieu-Daudé <address@hidden>
> ---
> linux-user/host/aarch64/safe-syscall.inc.S | 6 +++---
> 1 file changed, 3 insertions(+), 3 deletions(-)
>
> diff --git a/linux-user/host/aarch64/safe-syscall.inc.S
> b/linux-user/host/aarch64/safe-syscall.inc.S
> index 58a2329b37..bc1f5a9792 100644
> --- a/linux-user/host/aarch64/safe-syscall.inc.S
> +++ b/linux-user/host/aarch64/safe-syscall.inc.S
> @@ -36,7 +36,7 @@ safe_syscall_base:
> * and return the result in x0
> * and the syscall instruction needs
> * x8 == syscall number
> - * x0 ... x7 == syscall arguments
> + * x0 ... x6 == syscall arguments
> * and returns the result in x0
> * Shuffle everything around appropriately.
> */
> @@ -47,8 +47,8 @@ safe_syscall_base:
> mov x2, x4
> mov x3, x5
> mov x4, x6
> - mov x6, x7
> - ldr x7, [sp]
> + mov x5, x7
> + ldr x6, [sp]
>
> /* This next sequence of code works in conjunction with the
> * rewind_if_safe_syscall_function(). If a signal is taken
>
signature.asc
Description: OpenPGP digital signature