• Paul Mackerras's avatar
    powerpc/64: Disable use of radix under a hypervisor · 3f91a89d
    Paul Mackerras authored
    Currently, if the kernel is running on a POWER9 processor under a
    hypervisor, it may try to use the radix MMU even though it doesn't have
    the necessary code to do so (it doesn't negotiate use of radix, and it
    doesn't do the H_REGISTER_PROC_TBL hcall).  If the hypervisor supports
    both radix and HPT, then it will set up the guest to use HPT (since the
    guest doesn't request radix in the CAS call), but if the radix feature
    bit is set in the ibm,pa-features property (which is valid, since
    ibm,pa-features is defined to represent the capabilities of the
    processor) the guest will try to use radix, resulting in a crash when
    it turns the MMU on.
    
    This makes the minimal fix for the current code, which is to disable
    radix unless we are running in hypervisor mode.
    
    Fixes: 2bfd65e4
    
     ("powerpc/mm/radix: Add radix callbacks for early init routines")
    Cc: stable@vger.kernel.org # v4.7+
    Signed-off-by: default avatarPaul Mackerras <paulus@ozlabs.org>
    Signed-off-by: default avatarMichael Ellerman <mpe@ellerman.id.au>
    3f91a89d