This patch series update the pkey subsystem with more documentation and rename variables so that it is easy to follow the code. The last patch does fix a problem where we are treating keys above max_pkey as available. But userspace is not impacted because using that key in mprotect_pkey returns error due to limit check there. Also the uamor, value set by the platform is such that it will deny modification of keys above max pkey.
Changes from V1: * Rebase to the latest kernel. * Added two new patches 6 and 12. Aneesh Kumar K.V (12): powerpc/book3s64/pkeys: Fixup bit numbering powerpc/book3s64/pkeys: pkeys are supported only on hash on book3s. powerpc/book3s64/pkeys: Move pkey related bits in the linux page table powerpc/book3s64/pkeys: Explain key 1 reservation details powerpc/book3s64/pkeys: Simplify the key initialization powerpc/book3s64/pkeys: Prevent key 1 modification from userspace. powerpc/book3s64/pkeys: kill cpu feature key CPU_FTR_PKEY powerpc/book3s64/pkeys: Convert execute key support to static key powerpc/book3s64/pkeys: Simplify pkey disable branch powerpc/book3s64/pkeys: Convert pkey_total to max_pkey powerpc/book3s64/pkeys: Make initial_allocation_mask static powerpc/book3s64/pkeys: Mark all the pkeys above max pkey as reserved arch/powerpc/include/asm/book3s/64/hash-4k.h | 21 +- arch/powerpc/include/asm/book3s/64/hash-64k.h | 12 +- .../powerpc/include/asm/book3s/64/hash-pkey.h | 32 +++ arch/powerpc/include/asm/book3s/64/mmu-hash.h | 8 +- arch/powerpc/include/asm/book3s/64/pgtable.h | 17 +- arch/powerpc/include/asm/book3s/64/pkeys.h | 25 +++ arch/powerpc/include/asm/cputable.h | 10 +- arch/powerpc/include/asm/pkeys.h | 43 +--- arch/powerpc/kernel/dt_cpu_ftrs.c | 6 - arch/powerpc/mm/book3s64/pkeys.c | 210 ++++++++++-------- 10 files changed, 222 insertions(+), 162 deletions(-) create mode 100644 arch/powerpc/include/asm/book3s/64/hash-pkey.h create mode 100644 arch/powerpc/include/asm/book3s/64/pkeys.h -- 2.26.2