]> git.hungrycats.org Git - linux/commitdiff
[PATCH] ppc64: don't clear MSR.RI in do_hash_page_DSI
authorPaul Mackerras <paulus@samba.org>
Thu, 3 Jun 2004 15:43:54 +0000 (08:43 -0700)
committerLinus Torvalds <torvalds@ppc970.osdl.org>
Thu, 3 Jun 2004 15:43:54 +0000 (08:43 -0700)
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>
arch/ppc64/kernel/head.S

index 6b22a87d9e4042cac958eae8fc15e2d0bb325a76..e868fe7b88c7de5d1d2f3050437659024a4bb3f4 100644 (file)
@@ -926,8 +926,8 @@ _GLOBAL(do_hash_page_DSI)
        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
 
        /*
@@ -946,9 +946,9 @@ _GLOBAL(do_hash_page_DSI)
         */
        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 */