[RESEND PATCH v2] powerpc/mce: Fix SLB rebolting during MCE recovery path.
Mahesh Jagannath Salgaonkar
mahesh at linux.vnet.ibm.com
Thu Aug 23 18:01:07 AEST 2018
On 08/23/2018 12:14 PM, Michael Ellerman wrote:
> Mahesh J Salgaonkar <mahesh at linux.vnet.ibm.com> writes:
>
>> From: Mahesh Salgaonkar <mahesh at linux.vnet.ibm.com>
>>
>> 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.
Ouch.. My bad.. :-(
>
> 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 <mahesh at linux.vnet.ibm.com>
>> Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
>> Reviewed-by: Nicholas Piggin <npiggin at gmail.com>
>> ---
>> 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,
>
More information about the Linuxppc-dev
mailing list