powerpc: Clear MSR_RI during RTAS calls
authorAnton Blanchard <anton@samba.org>
Sun, 7 Feb 2010 19:37:29 +0000 (19:37 +0000)
committerBenjamin Herrenschmidt <benh@kernel.crashing.org>
Tue, 9 Feb 2010 02:56:24 +0000 (13:56 +1100)
RTAS should never cause an exception but if it does (for example accessing
outside our RMO) then we might go a long way through the kernel before
oopsing. If we unset MSR_RI we should at least stop things on exception
exit.

Signed-off-by: Anton Blanchard <anton@samba.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
arch/powerpc/kernel/entry_64.S

index bdcb557..07109d8 100644 (file)
@@ -791,9 +791,8 @@ _GLOBAL(enter_rtas)
        
         li      r9,1
         rldicr  r9,r9,MSR_SF_LG,(63-MSR_SF_LG)
-       ori     r9,r9,MSR_IR|MSR_DR|MSR_FE0|MSR_FE1|MSR_FP
+       ori     r9,r9,MSR_IR|MSR_DR|MSR_FE0|MSR_FE1|MSR_FP|MSR_RI
        andc    r6,r0,r9
-       ori     r6,r6,MSR_RI
        sync                            /* disable interrupts so SRR0/1 */
        mtmsrd  r0                      /* don't get trashed */