diff -Nura linux-2.6.15/arch/sparc64/kernel/entry.S linux-2.6.15-strace/arch/sparc64/kernel/entry.S --- linux-2.6.15/arch/sparc64/kernel/entry.S 2006-01-03 00:21:10.000000000 -0300 +++ linux-2.6.15-strace/arch/sparc64/kernel/entry.S 2006-01-10 14:53:29.000000000 -0300 @@ -1657,13 +1657,10 @@ /* Check if force_successful_syscall_return() * was invoked. */ - ldub [%curptr + TI_SYS_NOERROR], %l0 - brz,pt %l0, 1f - nop - ba,pt %xcc, 80f + ldub [%curptr + TI_SYS_NOERROR], %l2 + brnz,a,pn %l2, 80f stb %g0, [%curptr + TI_SYS_NOERROR] -1: cmp %o0, -ERESTART_RESTARTBLOCK bgeu,pn %xcc, 1f andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT), %l6