powerpc/64s: Enable KFENCE on book3s64
KFENCE support was added for ppc32 in commit 90cbac0e ("powerpc: Enable KFENCE for PPC32"). Enable KFENCE on ppc64 architecture with hash and radix MMUs. It uses the same mechanism as debug pagealloc to protect/unprotect pages. All KFENCE kunit tests pass on both MMUs. KFENCE memory is initially allocated using memblock but is later marked as SLAB allocated. This necessitates the change to __pud_free to ensure that the KFENCE pages are freed appropriately. Based on previous work by Christophe Leroy and Jordan Niethe. Signed-off-by:Nicholas Miehlbradt <nicholas@linux.ibm.com> Reviewed-by:
Russell Currey <ruscur@russell.cc> Signed-off-by:
Michael Ellerman <mpe@ellerman.id.au> Link: https://lore.kernel.org/r/20220926075726.2846-4-nicholas@linux.ibm.com
Showing
- arch/powerpc/Kconfig 1 addition, 1 deletionarch/powerpc/Kconfig
- arch/powerpc/include/asm/book3s/64/pgalloc.h 4 additions, 2 deletionsarch/powerpc/include/asm/book3s/64/pgalloc.h
- arch/powerpc/include/asm/book3s/64/pgtable.h 1 addition, 1 deletionarch/powerpc/include/asm/book3s/64/pgtable.h
- arch/powerpc/include/asm/kfence.h 15 additions, 0 deletionsarch/powerpc/include/asm/kfence.h
- arch/powerpc/mm/book3s64/hash_utils.c 5 additions, 5 deletionsarch/powerpc/mm/book3s64/hash_utils.c
- arch/powerpc/mm/book3s64/radix_pgtable.c 4 additions, 2 deletionsarch/powerpc/mm/book3s64/radix_pgtable.c
Please register or sign in to comment