[PATCH v6 04/22] powerpc/book3s64/kuap/kuep: Move uamor setup to pkey init

Christophe Leroy christophe.leroy at csgroup.eu
Thu Nov 26 00:32:15 AEDT 2020



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.kumar at 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)
> 


More information about the Linuxppc-dev mailing list