powerpc: Fix faults caused by radix patching of SLB miss handler

Michael Ellerman mpe at ellerman.id.au
Thu Jun 23 19:26:28 AEST 2016


On Tue, 2016-21-06 at 10:36:19 UTC, Michael Ellerman wrote:
> As part of the Radix MMU support we added some feature sections in the
> SLB miss handler. These are intended to catch the case that we
> incorrectly take an SLB miss when Radix is enabled, and instead of
> crashing weirdly they bail out to a well defined exit path and trigger
> an oops.
> 
> However the way they were written meant the bailout case was enabled by
> default until we did CPU feature patching.
> 
> On powermacs the early debug prints in setup_system() can cause an SLB
> miss, which happens before code patching, and so the SLB miss handler
> would incorrectly bailout and crash during boot.
> 
> Fix it by inverting the sense of the feature section, so that the code
> which is in place at boot is correct for the hash case. Once we
> determine we are using Radix - which will never happen on a powermac -
> only then do we patch in the bailout case which unconditionally jumps.
> 
> Fixes: caca285e5ab4 ("powerpc/mm/radix: Use STD_MMU_64 to properly isolate hash related code")
> Reported-by: Denis Kirjanov <kda at linux-powerpc.org>
> Tested-by: Denis Kirjanov <kda at linux-powerpc.org>
> Signed-off-by: Michael Ellerman <mpe at ellerman.id.au>
> Reviewed-by: Aneesh Kumar K.V <aneesh.kumar at linux.vnet.ibm.com>

Applied to powerpc fixes.

https://git.kernel.org/powerpc/c/6e914ee629c411d9c6d160399c

cheers


More information about the Linuxppc-dev mailing list