powerpc: correct register usage in 64-bit syscall exit path
authorPaul Mackerras <paulus@samba.org>
Tue, 20 Dec 2005 04:38:47 +0000 (15:38 +1100)
committerPaul Mackerras <paulus@samba.org>
Tue, 20 Dec 2005 04:38:47 +0000 (15:38 +1100)
Since we don't restore the volatile registers in the syscall exit
path, we need to make sure we don't leak any potentially interesting
values from the kernel to userspace.  This was already the case for
all except r11.  This makes it use r11 for an MSR value, so r11 will
have an (uninteresting) MSR value in it on return to userspace.

Signed-off-by: Paul Mackerras <paulus@samba.org>
arch/powerpc/kernel/entry_64.S

index 2d22bf03484ee2b47ab46b19d5209b579fcfd17f..bce33a38399fb41f04a12157a154aca99a8c82e9 100644 (file)
@@ -183,8 +183,8 @@ syscall_exit_trace_cont:
        ld      r13,GPR13(r1)           /* returning to usermode */
 1:     ld      r2,GPR2(r1)
        li      r12,MSR_RI
-       andc    r10,r10,r12
-       mtmsrd  r10,1                   /* clear MSR.RI */
+       andc    r11,r10,r12
+       mtmsrd  r11,1                   /* clear MSR.RI */
        ld      r1,GPR1(r1)
        mtlr    r4
        mtcr    r5