[PATCH] poewrpc/mce: Fix SLB rebolting during MCE recovery path.
Mahesh J Salgaonkar
mahesh at linux.vnet.ibm.com
Fri Aug 17 19:21:47 AEST 2018
From: Mahesh Salgaonkar <mahesh at linux.vnet.ibm.com>
With the powrpc next commit e7e81847478 (poewrpc/mce: Fix SLB rebolting
during MCE recovery path.), the SLB error recovery is broken. The
commit missed a crucial change of OR-ing index value to RB[52-63] which
selects the SLB entry while rebolting. This patch fixes that.
Signed-off-by: Mahesh Salgaonkar <mahesh at linux.vnet.ibm.com>
Reviewed-by: Nicholas Piggin <npiggin at gmail.com>
---
arch/powerpc/mm/slb.c | 5 ++++-
1 file changed, 4 insertions(+), 1 deletion(-)
diff --git a/arch/powerpc/mm/slb.c b/arch/powerpc/mm/slb.c
index 0b095fa54049..6dd9913425bc 100644
--- a/arch/powerpc/mm/slb.c
+++ b/arch/powerpc/mm/slb.c
@@ -101,9 +101,12 @@ void __slb_restore_bolted_realmode(void)
/* No isync needed because realmode. */
for (index = 0; index < SLB_NUM_BOLTED; index++) {
+ unsigned long rb = be64_to_cpu(p->save_area[index].esid);
+
+ rb = (rb & ~0xFFFul) | index;
asm volatile("slbmte %0,%1" :
: "r" (be64_to_cpu(p->save_area[index].vsid)),
- "r" (be64_to_cpu(p->save_area[index].esid)));
+ "r" (rb));
}
}
More information about the Linuxppc-dev
mailing list