[PATCH v2 4/6] powerpc/pkeys: Preallocate execute-only key
Michael Ellerman
mpe at ellerman.id.au
Tue Jun 19 22:40:13 AEST 2018
Ram Pai <linuxram at us.ibm.com> writes:
> execute-only key is allocated dynamically. This is a problem. When a
> thread implicitly creates a execute-only key, and resets UAMOR for that
> key, the UAMOR value does not percolate to all the other threads. Any
> other thread may ignorantly change the permissions on the key. This can
> cause the key to be not execute-only for that thread.
>
> Preallocate the execute-only key and ensure that no thread can change
> the permission of the key, by resetting the corresponding bit in UAMOR.
OK this is a non-ABI changing bug fix AFAICS.
I'll add:
Fixes: 5586cf61e108 ("powerpc: introduce execute-only pkey")
Cc: stable at vger.kernel.org # v4.16+
> diff --git a/arch/powerpc/mm/pkeys.c b/arch/powerpc/mm/pkeys.c
> index b681bec..1f2389f 100644
> --- a/arch/powerpc/mm/pkeys.c
> +++ b/arch/powerpc/mm/pkeys.c
> @@ -25,6 +25,7 @@
> #define IAMR_EX_BIT 0x1UL
> #define PKEY_REG_BITS (sizeof(u64)*8)
> #define pkeyshift(pkey) (PKEY_REG_BITS - ((pkey+1) * AMR_BITS_PER_PKEY))
> +#define EXECUTE_ONLY_KEY 2
Do we ensure we have at least 3 keys anywhere?
cheers
More information about the Linuxppc-dev
mailing list