powerpc/mm/hash: Always clear UPRT and Host Radix bits when setting up CPU
authorAneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Wed, 22 Feb 2017 05:12:02 +0000 (10:42 +0530)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 12 Mar 2017 05:41:53 +0000 (06:41 +0100)
commit fda2d27db6eae5c2468f9e4657539b72bbc238bb upstream.

We will set LPCR with correct value for radix during int. This make sure we
start with a sanitized value of LPCR. In case of kexec, cpus can have LPCR
value based on the previous translation mode we were running.

Fixes: fe036a0605d60 ("powerpc/64/kexec: Fix MMU cleanup on radix")
Acked-by: Michael Neuling <mikey@neuling.org>
Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.vnet.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
arch/powerpc/kernel/cpu_setup_power.S

index 37c027ca83b2b172a07a9ed01b23ec3e34baffff..7803756998e214f14eae5b07bd45cd84287fa068 100644 (file)
@@ -100,6 +100,8 @@ _GLOBAL(__setup_cpu_power9)
        mfspr   r3,SPRN_LPCR
        LOAD_REG_IMMEDIATE(r4, LPCR_PECEDH | LPCR_PECE_HVEE | LPCR_HVICE)
        or      r3, r3, r4
+       LOAD_REG_IMMEDIATE(r4, LPCR_UPRT | LPCR_HR)
+       andc    r3, r3, r4
        bl      __init_LPCR
        bl      __init_HFSCR
        bl      __init_tlb_power9
@@ -120,6 +122,8 @@ _GLOBAL(__restore_cpu_power9)
        mfspr   r3,SPRN_LPCR
        LOAD_REG_IMMEDIATE(r4, LPCR_PECEDH | LPCR_PECE_HVEE | LPCR_HVICE)
        or      r3, r3, r4
+       LOAD_REG_IMMEDIATE(r4, LPCR_UPRT | LPCR_HR)
+       andc    r3, r3, r4
        bl      __init_LPCR
        bl      __init_HFSCR
        bl      __init_tlb_power9