Re: [PATCH v2 4/6] powerpc/pkeys: Preallocate execute-only key
From: Michael Ellerman <mpe@ellerman.id.au>
Date: 2018-06-21 00:28:32
Ram Pai [off-list ref] writes:
On Tue, Jun 19, 2018 at 10:40:13PM +1000, Michael Ellerman wrote:quoted
Ram Pai [off-list ref] writes: =20quoted
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 c=
an
quoted
quoted
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.=20 OK this is a non-ABI changing bug fix AFAICS. =20 I'll add: =20 Fixes: 5586cf61e108 ("powerpc: introduce execute-only pkey") Cc: stable@vger.kernel.org # v4.16+ =20quoted
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_PKE=
Y))
quoted
quoted
+#define EXECUTE_ONLY_KEY 2=20 Do we ensure we have at least 3 keys anywhere?No. Good to add. Can this be different patch?
Yes please.
However we do not have any systems with less than 16keys AFAICT.
It's controllable by firmware so we have between 0 and =E2=88=9E keys :) But yeah you're right it's unlikely to be a bug anyone hits in practice. cheers