[PATCH v2 4/6] powerpc/pkeys: Preallocate execute-only key
Ram Pai
linuxram at us.ibm.com
Wed Jun 20 02:38:13 AEST 2018
On Tue, Jun 19, 2018 at 10:40:13PM +1000, Michael Ellerman wrote:
> 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?
No. Good to add. Can this be different patch?
However we do not have any systems with less than 16keys AFAICT.
RP
More information about the Linuxppc-dev
mailing list