aboutsummaryrefslogtreecommitdiffstats
path: root/arch/sparc
diff options
context:
space:
mode:
authorKirill Tkhai <tkhai@yandex.ru>2013-07-26 09:21:12 -0400
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2013-10-13 19:08:33 -0400
commit4026b686478d8a3de4a10fd870a17ed53a7a2fc6 (patch)
tree999b779c7f3e0165f0a8a87fb47770b5c0dc95cd /arch/sparc
parentad779b05b451bf64ca159290339fd770539b298d (diff)
sparc64: Fix not SRA'ed %o5 in 32-bit traced syscall
[ Upstream commit ab2abda6377723e0d5fbbfe5f5aa16a5523344d1 ] (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: Kirill Tkhai <tkhai@yandex.ru> CC: David Miller <davem@davemloft.net> Signed-off-by: David S. Miller <davem@davemloft.net> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'arch/sparc')
-rw-r--r--arch/sparc/kernel/syscalls.S8
1 files changed, 4 insertions, 4 deletions
diff --git a/arch/sparc/kernel/syscalls.S b/arch/sparc/kernel/syscalls.S
index 22a1098961f5..73ec8a798d95 100644
--- a/arch/sparc/kernel/syscalls.S
+++ b/arch/sparc/kernel/syscalls.S
@@ -152,7 +152,7 @@ linux_syscall_trace32:
152 srl %i4, 0, %o4 152 srl %i4, 0, %o4
153 srl %i1, 0, %o1 153 srl %i1, 0, %o1
154 srl %i2, 0, %o2 154 srl %i2, 0, %o2
155 ba,pt %xcc, 2f 155 ba,pt %xcc, 5f
156 srl %i3, 0, %o3 156 srl %i3, 0, %o3
157 157
158linux_syscall_trace: 158linux_syscall_trace:
@@ -182,13 +182,13 @@ linux_sparc_syscall32:
182 srl %i1, 0, %o1 ! IEU0 Group 182 srl %i1, 0, %o1 ! IEU0 Group
183 ldx [%g6 + TI_FLAGS], %l0 ! Load 183 ldx [%g6 + TI_FLAGS], %l0 ! Load
184 184
185 srl %i5, 0, %o5 ! IEU1 185 srl %i3, 0, %o3 ! IEU0
186 srl %i2, 0, %o2 ! IEU0 Group 186 srl %i2, 0, %o2 ! IEU0 Group
187 andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0 187 andcc %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0
188 bne,pn %icc, linux_syscall_trace32 ! CTI 188 bne,pn %icc, linux_syscall_trace32 ! CTI
189 mov %i0, %l5 ! IEU1 189 mov %i0, %l5 ! IEU1
190 call %l7 ! CTI Group brk forced 1905: call %l7 ! CTI Group brk forced
191 srl %i3, 0, %o3 ! IEU0 191 srl %i5, 0, %o5 ! IEU1
192 ba,a,pt %xcc, 3f 192 ba,a,pt %xcc, 3f
193 193
194 /* Linux native system calls enter here... */ 194 /* Linux native system calls enter here... */