Commit 4026b686 authored by Kirill Tkhai's avatar Kirill Tkhai Committed by Greg Kroah-Hartman

sparc64: Fix not SRA'ed %o5 in 32-bit traced syscall

[ Upstream commit ab2abda6 ]

(From v1 to v2: changed comment)

On the way linux_sparc_syscall32->linux_syscall_trace32->goto 2f,
register %o5 doesn't clear its second 32-bit.

Fix that.
Signed-off-by: default avatarKirill Tkhai <tkhai@yandex.ru>
CC: David Miller <davem@davemloft.net>
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
Signed-off-by: default avatarGreg Kroah-Hartman <gregkh@linuxfoundation.org>
parent ad779b05
...@@ -152,7 +152,7 @@ linux_syscall_trace32: ...@@ -152,7 +152,7 @@ linux_syscall_trace32:
srl %i4, 0, %o4 srl %i4, 0, %o4
srl %i1, 0, %o1 srl %i1, 0, %o1
srl %i2, 0, %o2 srl %i2, 0, %o2
ba,pt %xcc, 2f ba,pt %xcc, 5f
srl %i3, 0, %o3 srl %i3, 0, %o3
linux_syscall_trace: linux_syscall_trace:
...@@ -182,13 +182,13 @@ linux_sparc_syscall32: ...@@ -182,13 +182,13 @@ linux_sparc_syscall32:
srl %i1, 0, %o1 ! IEU0 Group srl %i1, 0, %o1 ! IEU0 Group
ldx [%g6 + TI_FLAGS], %l0 ! Load ldx [%g6 + TI_FLAGS], %l0 ! Load
srl %i5, 0, %o5 ! IEU1 srl %i3, 0, %o3 ! IEU0
srl %i2, 0, %o2 ! IEU0 Group srl %i2, 0, %o2 ! IEU0 Group
andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0 andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0
bne,pn %icc, linux_syscall_trace32 ! CTI bne,pn %icc, linux_syscall_trace32 ! CTI
mov %i0, %l5 ! IEU1 mov %i0, %l5 ! IEU1
call %l7 ! CTI Group brk forced 5: call %l7 ! CTI Group brk forced
srl %i3, 0, %o3 ! IEU0 srl %i5, 0, %o5 ! IEU1
ba,a,pt %xcc, 3f ba,a,pt %xcc, 3f
/* Linux native system calls enter here... */ /* Linux native system calls enter here... */
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment