On Mon, Jun 13, 2016 at 02:45:21PM -0700, Richard Henderson wrote: > Do what the comment says, test for signal_pending non-zero, > rather than the current coe which tests for bit 0 non-zero.
Applied to linux-user with the type fixed, Thanks > 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 > -- > 2.5.5 >