From fec498cab4676f8413b8c5a34cb92052d98c8c08 Mon Sep 17 00:00:00 2001 From: Paul Mackerras Date: Thu, 3 Jun 2004 08:43:54 -0700 Subject: [PATCH] [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: Paul Mackerras Signed-off-by: Linus Torvalds --- arch/ppc64/kernel/head.S | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/arch/ppc64/kernel/head.S b/arch/ppc64/kernel/head.S index 6b22a87d9e404..e868fe7b88c7d 100644 --- a/arch/ppc64/kernel/head.S +++ b/arch/ppc64/kernel/head.S @@ -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 */ -- 2.53.0