[PATCH RFC v9 04/25] arm64: Introduce por_elx_set_pkey_perms() helper

Linu Cherian linu.cherian at arm.com
Tue Sep 1 07:42:52 PDT 2026


Kevin,

On Tue, Aug 18, 2026 at 03:08:46PM +0100, Kevin Brodsky wrote:
> Introduce a helper that sets the permissions of a given pkey
> (POIndex) in the POR_ELx format, and make use of it in
> arch_set_user_pkey_access().
> 
> new_por now represents the permissions of a single pkey, so rename
> it to new_perms and change its type accordingly.
> 
> Reviewed-by: David Hildenbrand (Arm) <david at kernel.org>
> Signed-off-by: Kevin Brodsky <kevin.brodsky at arm.com>
> ---
>  arch/arm64/include/asm/por.h |  7 +++++++
>  arch/arm64/mm/mmu.c          | 26 ++++++++++----------------
>  2 files changed, 17 insertions(+), 16 deletions(-)
> 
> diff --git a/arch/arm64/include/asm/por.h b/arch/arm64/include/asm/por.h
> index d913d5b529e4..19b3dd1d43a0 100644
> --- a/arch/arm64/include/asm/por.h
> +++ b/arch/arm64/include/asm/por.h
> @@ -31,4 +31,11 @@ static inline bool por_elx_allows_exec(u64 por, u8 pkey)
>  	return perm & POE_X;
>  }
>  
> +static inline u64 por_elx_set_pkey_perms(u64 por, u8 pkey, u8 perms)
> +{
> +	u64 shift = POR_ELx_PERM_SHIFT(pkey);
> +
> +	return (por & ~(POE_MASK << shift)) | ((u64)perms << shift);

We could use standard bit field access macros here ?

--
Linu Cherian



More information about the linux-arm-kernel mailing list