Commit fec498ca authored by Paul Mackerras's avatar Paul Mackerras Committed by Linus Torvalds

[PATCH] ppc64: don't clear MSR.RI in do_hash_page_DSI

Some code that is used on iSeries (do_hash_page_DSI in head.S) was
clearing the RI (recoverable interrupt) bit in the MSR when it
shouldn't.  We were getting SLB miss interrupts following that which
were panicking because they appeared to have occurred at a bad place.
This patch fixes the problem.  In fact it isn't necessary for
do_hash_page_DSI to do anything to RI, so the patch changes the code
to not set or clear it.
Signed-off-by: default avatarPaul Mackerras <paulus@samba.org>
Signed-off-by: default avatarLinus Torvalds <torvalds@osdl.org>
parent 1e9188c2
...@@ -926,8 +926,8 @@ _GLOBAL(do_hash_page_DSI) ...@@ -926,8 +926,8 @@ _GLOBAL(do_hash_page_DSI)
stb r0,PACAPROCENABLED(r20) /* Soft Disabled */ stb r0,PACAPROCENABLED(r20) /* Soft Disabled */
mfmsr r0 mfmsr r0
ori r0,r0,MSR_EE+MSR_RI ori r0,r0,MSR_EE
mtmsrd r0 /* Hard Enable, RI on */ mtmsrd r0,1 /* Hard Enable */
#endif #endif
/* /*
...@@ -946,9 +946,9 @@ _GLOBAL(do_hash_page_DSI) ...@@ -946,9 +946,9 @@ _GLOBAL(do_hash_page_DSI)
*/ */
mfmsr r0 mfmsr r0
li r4,0 li r4,0
ori r4,r4,MSR_EE+MSR_RI ori r4,r4,MSR_EE
andc r0,r0,r4 andc r0,r0,r4
mtmsrd r0 /* Hard Disable, RI off */ mtmsrd r0,1 /* Hard Disable */
ld r0,SOFTE(r1) ld r0,SOFTE(r1)
cmpdi 0,r0,0 /* See if we will soft enable in */ cmpdi 0,r0,0 /* See if we will soft enable in */
......
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