Le 25/11/2020 à 06:16, Aneesh Kumar K.V a écrit :
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.ku...@linux.ibm.com>
---
  arch/powerpc/mm/book3s64/radix_pgtable.c | 8 +++++---
  1 file changed, 5 insertions(+), 3 deletions(-)

diff --git a/arch/powerpc/mm/book3s64/radix_pgtable.c 
b/arch/powerpc/mm/book3s64/radix_pgtable.c
index 3adcf730f478..bfe441af916a 100644
--- a/arch/powerpc/mm/book3s64/radix_pgtable.c
+++ b/arch/powerpc/mm/book3s64/radix_pgtable.c
@@ -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,11 @@ void radix__early_init_mmu_secondary(void)
radix__switch_mmu_context(NULL, &init_mm);
        tlbiel_all();
+
+#ifdef CONFIG_PPC_PKEY

It should be possible to use an 'if' with IS_ENABLED(CONFIG_PPC_PKEY) instead 
of this #ifdef

+       /* Make sure userspace can't change the AMR */
+       mtspr(SPRN_UAMOR, 0);
+#endif
  }
void radix__mmu_cleanup_all(void)

Reply via email to