]> git.proxmox.com Git - mirror_ubuntu-hirsute-kernel.git/commitdiff
powerpc/book3s64/kuap/kuep: Move uamor setup to pkey init
authorAneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Fri, 27 Nov 2020 04:44:06 +0000 (10:14 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Thu, 3 Dec 2020 14:01:24 +0000 (01:01 +1100)
This patch consolidates UAMOR update across pkey, kuap and kuep features.
The boot cpu initialize UAMOR via pkey init and both radix/hash do the
secondary cpu UAMOR init in early_init_mmu_secondary.

We don't check for mmu_feature in radix secondary init because UAMOR
is a supported SPRN with all CPUs supporting radix translation.
The old code was not updating UAMOR if we had smap disabled and smep enabled.
This change handles that case.

Signed-off-by: Aneesh Kumar K.V <aneesh.kumar@linux.ibm.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://lore.kernel.org/r/20201127044424.40686-5-aneesh.kumar@linux.ibm.com
arch/powerpc/mm/book3s64/radix_pgtable.c

index 3adcf730f4784d587e0986d0b29b2150e3ee4eb1..f5f248d44d5c4ca8ed029c4bf84ad16375468564 100644 (file)
@@ -620,9 +620,6 @@ void setup_kuap(bool disabled)
                cur_cpu_spec->mmu_features |= MMU_FTR_RADIX_KUAP;
        }
 
-       /* Make sure userspace can't change the AMR */
-       mtspr(SPRN_UAMOR, 0);
-
        /*
         * Set the default kernel AMR values on all cpus.
         */
@@ -721,6 +718,9 @@ void radix__early_init_mmu_secondary(void)
 
        radix__switch_mmu_context(NULL, &init_mm);
        tlbiel_all();
+
+       /* Make sure userspace can't change the AMR */
+       mtspr(SPRN_UAMOR, 0);
 }
 
 void radix__mmu_cleanup_all(void)