Re: [Qemu-devel] [PATCH] linux-user: Fix register used for 6th and 7th syscall argument on aarch64
On 01/24/2018 02: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> --- > linux-user/host/aarch64/safe-syscall.inc.S | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) Reviewed-by: Richard Henderson r~
Re: [Qemu-devel] [PATCH] linux-user: Fix register used for 6th and 7th syscall argument on aarch64
Le 24/01/2018 à 11:13, Guido Günther a écrit : > 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> --- > 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 > Reviewed-by: Laurent Vivier for your future patches (I hope there will be), if there are several versions, add the version number in the Subject (i.e. "[PATCH v2]") and version history below the signature mark ("---"): ... Signed-off-by: Guido Günther --- v2: fix also 7th arg linux-user/host/aarch64/safe-syscall.inc.S | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) ... Thanks, Laurent
Re: [Qemu-devel] [PATCH] linux-user: Fix register used for 6th and 7th syscall argument on aarch64
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" 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 Reviewed-by: Philippe Mathieu-Daudé Tested-by: Philippe Mathieu-Daudé > --- > 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
[Qemu-devel] [PATCH] linux-user: Fix register used for 6th and 7th syscall argument on aarch64
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--- 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 -- 2.15.1