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: Paul Mackerras <paulus@samba.org>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
stb r0,PACAPROCENABLED(r20) /* Soft Disabled */
mfmsr r0
- ori r0,r0,MSR_EE+MSR_RI
- mtmsrd r0 /* Hard Enable, RI on */
+ ori r0,r0,MSR_EE
+ mtmsrd r0,1 /* Hard Enable */
#endif
/*
*/
mfmsr r0
li r4,0
- ori r4,r4,MSR_EE+MSR_RI
+ ori r4,r4,MSR_EE
andc r0,r0,r4
- mtmsrd r0 /* Hard Disable, RI off */
+ mtmsrd r0,1 /* Hard Disable */
ld r0,SOFTE(r1)
cmpdi 0,r0,0 /* See if we will soft enable in */