Re: [PATCH 03/25] powerpc: track allocation status of all pkeys
From: Ram Pai <hidden>
Date: 2017-10-08 23:02:55
On Sat, Oct 07, 2017 at 09:02:55PM +1100, Michael Ellerman wrote:
Ram Pai [off-list ref] writes:quoted
Total 32 keys are available on power7 and above. However pkey 0,1 are reserved. So effectively we have 30 pkeys. On 4K kernels, we do not have 5 bits in the PTE to represent all the keys; we only have 3bits.Two of those keys are reserved; pkey 0 and pkey 1. So effectively we have 6 pkeys. This patch keeps track of reserved keys, allocated keys and keys that are currently free. Also it adds skeletal functions and macros, that the architecture-independent code expects to be available. Signed-off-by: Ram Pai <redacted> --- arch/powerpc/include/asm/book3s/64/mmu.h | 9 ++++ arch/powerpc/include/asm/mmu_context.h | 1 + arch/powerpc/include/asm/pkeys.h | 72 ++++++++++++++++++++++++++++-- arch/powerpc/mm/mmu_context_book3s64.c | 2 + arch/powerpc/mm/pkeys.c | 28 ++++++++++++ 5 files changed, 108 insertions(+), 4 deletions(-)This doesn't build for me, with pseries_le_defconfig. I assume it built for you. So something has changed upstream maybe?
Yes. :( The following commit upstream broke my patches. df3735c5b40fad8d0d28eb8ab065fe955b3347ee Will fix and send you a patch. RP
In file included from ../include/linux/pkeys.h:8:0,
from ../mm/mprotect.c:26:
../mm/mprotect.c: In function ‘do_mprotect_pkey’:
../arch/powerpc/include/asm/pkeys.h:27:29: error: ‘VM_PKEY_BIT0’ undeclared (first use in this function)
#define ARCH_VM_PKEY_FLAGS (VM_PKEY_BIT0 | VM_PKEY_BIT1 | VM_PKEY_BIT2 | \
^..snip...