On 13 June 2016 at 22:45, Richard Henderson <r...@twiddle.net> wrote: > Do what the comment says, test for signal_pending non-zero, > rather than the current coe which tests for bit 0 non-zero.
"code" > > Signed-off-by: Richard Henderson <r...@twiddle.net> > --- > linux-user/host/x86_64/safe-syscall.inc.S | 6 +++--- > 1 file changed, 3 insertions(+), 3 deletions(-) > > diff --git a/linux-user/host/x86_64/safe-syscall.inc.S > b/linux-user/host/x86_64/safe-syscall.inc.S > index e09368d..f36992d 100644 > --- a/linux-user/host/x86_64/safe-syscall.inc.S > +++ b/linux-user/host/x86_64/safe-syscall.inc.S > @@ -67,8 +67,8 @@ safe_syscall_base: > */ > safe_syscall_start: > /* if signal_pending is non-zero, don't do the call */ > - testl $1, (%rbp) > - jnz return_ERESTARTSYS > + cmpl $0, (%rbp) > + jnz 1f > syscall > safe_syscall_end: > /* code path for having successfully executed the syscall */ > @@ -78,7 +78,7 @@ safe_syscall_end: > .cfi_restore rbp > ret > > -return_ERESTARTSYS: > +1: > /* code path when we didn't execute the syscall */ > .cfi_restore_state > mov $-TARGET_ERESTARTSYS, %rax Reviewed-by: Peter Maydell <peter.mayd...@linaro.org> thanks -- PMM