]> git.proxmox.com Git - mirror_ubuntu-bionic-kernel.git/commitdiff
sparc64: Fix not SRA'ed %o5 in 32-bit traced syscall
authorKirill Tkhai <tkhai@yandex.ru>
Fri, 26 Jul 2013 13:21:12 +0000 (17:21 +0400)
committerDavid S. Miller <davem@davemloft.net>
Thu, 1 Aug 2013 02:10:04 +0000 (19:10 -0700)
(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>
arch/sparc/kernel/syscalls.S

index 868ed222206cc7bf418f7654ac09d821bb57ed46..d950197a17e16229d0b62147b5956924d656baf4 100644 (file)
@@ -152,7 +152,7 @@ linux_syscall_trace32:
        srl     %i4, 0, %o4
        srl     %i1, 0, %o1
        srl     %i2, 0, %o2
-       ba,pt   %xcc, 2f
+       ba,pt   %xcc, 5f
         srl    %i3, 0, %o3
 
 linux_syscall_trace:
@@ -182,13 +182,13 @@ linux_sparc_syscall32:
        srl     %i1, 0, %o1                             ! IEU0  Group
        ldx     [%g6 + TI_FLAGS], %l0           ! Load
 
-       srl     %i5, 0, %o5                             ! IEU1
+       srl     %i3, 0, %o3                             ! IEU0
        srl     %i2, 0, %o2                             ! IEU0  Group
        andcc   %l0, (_TIF_SYSCALL_TRACE|_TIF_SECCOMP|_TIF_SYSCALL_AUDIT|_TIF_SYSCALL_TRACEPOINT), %g0
        bne,pn  %icc, linux_syscall_trace32             ! CTI
         mov    %i0, %l5                                ! IEU1
-       call    %l7                                     ! CTI   Group brk forced
-        srl    %i3, 0, %o3                             ! IEU0
+5:     call    %l7                                     ! CTI   Group brk forced
+        srl    %i5, 0, %o5                             ! IEU1
        ba,a,pt %xcc, 3f
 
        /* Linux native system calls enter here... */