powerpc/64s/radix: Fix radix segment exception handling

Nicholas Piggin npiggin at gmail.com
Fri Apr 12 13:35:53 AEST 2019


Michael Ellerman's on April 11, 2019 12:49 am:
> On Fri, 2019-03-29 at 07:42:57 UTC, Nicholas Piggin wrote:
>> Commit 48e7b76957 ("powerpc/64s/hash: Convert SLB miss handlers to C")
>> broke the radix-mode segment exception handler. In radix mode, this is
>> exception is not an SLB miss, rather it signals that the EA is outside
>> the range translated by any page table.
>> 
>> The commit lost the radix feature alternate code patch, which can
>> cause faults to some EAs to kernel BUG at arch/powerpc/mm/slb.c:639!
>> 
>> The original radix code would send faults to slb_miss_large_addr,
>> which would end up faulting due to slb_addr_limit being 0. This patch
>> sends radix directly to do_bad_slb_fault, which is a bit clearer.
>> 
>> Fixes: 48e7b76957 ("powerpc/64s/hash: Convert SLB miss handlers to C")
>> Cc: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>
>> Reported-by: Anton Blanchard <anton at samba.org>
>> Signed-off-by: Nicholas Piggin <npiggin at gmail.com>
>> Reviewed-by: Aneesh Kumar K.V <aneesh.kumar at linux.ibm.com>
> 
> Applied to powerpc fixes, thanks.
> 
> https://git.kernel.org/powerpc/c/7100e8704b61247649c50551b965e71d

I sent a v2 with a selftests that triggers the crash if you want it.
Code was unchanged to no big deal there.

Thanks,
Nick



More information about the Linuxppc-dev mailing list