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 <agx@sigxcpu.org>
---
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
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 <laurent@vivier.eu>" 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 <agx@sigxcpu.org> Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > --- > 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 >
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 <agx@sigxcpu.org> > --- > 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 <laurent@vivier.eu> 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 <agx@sigxcpu.org> --- v2: fix also 7th arg linux-user/host/aarch64/safe-syscall.inc.S | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) ... Thanks, Laurent
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 <agx@sigxcpu.org> > --- > linux-user/host/aarch64/safe-syscall.inc.S | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) Reviewed-by: Richard Henderson <richard.henderson@linaro.org> r~
This 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 <agx@sigxcpu.org>
Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Suggested-by: Laurent Vivier <laurent@vivier.eu>
Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org>
Reviewed-by: Richard Henderson <richard.henderson@linaro.org>
---
v3 collects *-by: replies. Anything else I can do to get this applied?
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
Le 02/02/2018 à 11:02, Guido Günther a écrit : > This 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 <agx@sigxcpu.org> > Tested-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > Suggested-by: Laurent Vivier <laurent@vivier.eu> > Reviewed-by: Philippe Mathieu-Daudé <f4bug@amsat.org> > Reviewed-by: Richard Henderson <richard.henderson@linaro.org> > --- > v3 collects *-by: replies. Anything else I can do to get this applied? > > linux-user/host/aarch64/safe-syscall.inc.S | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) Applied to my 'linux-user-for-2.12' branch. Thanks, Laurent
© 2016 - 2024 Red Hat, Inc.