On 06/14/2018 02:28 AM, Ram Pai wrote:
Assortment of fixes to pkey.
Patch 1 makes pkey consumable in multithreaded applications.
Patch 2 fixes fork behavior to inherit the key attributes.
Patch 3 A off-by-one bug made one key unusable. Fixes it.
Patch 4 Execute-only key is preallocated.
Patch 5 Makes pkey-0 less special.
Patch 6 Deny by default permissions on all unallocated keys.
Passes all selftests on powerpc. Also behavior verified to be correct
by Florian.
Changelog:
v2: . fixed merge conflict with upstream code.
. Add patch 6. Makes the behavior consistent
with that on x86.
(Except signal handling, but I agree with Ram that the POWER behavior is
the correct one.)
Ram Pai (6):
powerpc/pkeys: Enable all user-allocatable pkeys at init.
powerpc/pkeys: Save the pkey registers before fork
powerpc/pkeys: fix calculation of total pkeys.
powerpc/pkeys: Preallocate execute-only key
powerpc/pkeys: make protection key 0 less special
powerpc/pkeys: Deny read/write/execute by default
I tested the whole series with the new selftests, with the printamr.c
program I posted earlier, and the glibc test for pkey_alloc &c. The
latter required some test fixes, but now passes as well. As far as I
can tell, everything looks good now.
Tested-By: Florian Weimer <fwei...@redhat.com>
Thanks,
Florian