Mahesh J Salgaonkar <[email protected]> writes: > From: Mahesh Salgaonkar <[email protected]> > > With the powerpc next commit e7e81847478 (powerpc/mce: Fix SLB rebolting > during MCE recovery path.),
That commit description is wrong, I'll fix it up. cheers > the SLB error recovery is broken. The new > change now does not add index value to RB[52-63] that selects the SLB > entry while rebolting, instead it assumes that the shadow save area > already have index embeded correctly in esid field. While all valid bolted > save areas do contain index value set correctly, there is a case where > 3rd (KSTACK_INDEX) entry for kernel stack does not embed index for NULL > esid entry. This patch fixes that. > > Without this patch the SLB rebolt code overwrites the 1st entry of kernel > linear mapping and causes SLB recovery to fail. > > Signed-off-by: Mahesh Salgaonkar <[email protected]> > Signed-off-by: Nicholas Piggin <[email protected]> > Reviewed-by: Nicholas Piggin <[email protected]> > --- > arch/powerpc/mm/slb.c | 2 +- > 1 file changed, 1 insertion(+), 1 deletion(-) > > diff --git a/arch/powerpc/mm/slb.c b/arch/powerpc/mm/slb.c > index 0b095fa54049..9f574e59d178 100644 > --- a/arch/powerpc/mm/slb.c > +++ b/arch/powerpc/mm/slb.c > @@ -70,7 +70,7 @@ static inline void slb_shadow_update(unsigned long ea, int > ssize, > > static inline void slb_shadow_clear(enum slb_index index) > { > - WRITE_ONCE(get_slb_shadow()->save_area[index].esid, 0); > + WRITE_ONCE(get_slb_shadow()->save_area[index].esid, cpu_to_be64(index)); > } > > static inline void create_shadowed_slbe(unsigned long ea, int ssize,
