Commit 4eed9990 authored by Richard Henderson's avatar Richard Henderson Committed by Riku Voipio
Browse files

linux-user: fix x86_64 safe_syscall



Do what the comment says, test for signal_pending non-zero,
rather than the current code which tests for bit 0 non-zero.

Signed-off-by: default avatarRichard Henderson <rth@twiddle.net>
Signed-off-by: default avatarRiku Voipio <riku.voipio@linaro.org>
Reviewed-by: default avatarPeter Maydell <peter.maydell@linaro.org>
parent b9403979
Loading
Loading
Loading
Loading
+3 −3
Original line number Diff line number Diff line
@@ -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