KFENCE requires linear map to be mapped at page granularity, so that it is possible to protect/unprotect single pages in the KFENCE pool. Currently if KFENCE is enabled, arm64 maps all pages at page granularity, it seems overkilled. We want both KFENCE feature and arm64's block level and contiguous mapping for non KEFENCE pool pages. We acchieve this goal by allocating KFENCE pool before paging_init() so we know the KFENCE pool address, then we take care to map the pool at page granularity during map_mem(). patch1 is a preparation patch. patch2 removes the limitation. Jisheng Zhang (2): kfence: allow providing __kfence_pool in arch specific way arm64: remove page granularity limitation from KFENCE arch/arm64/kernel/setup.c | 3 +++ arch/arm64/mm/mmu.c | 27 +++++++++++++++++++-------- mm/kfence/core.c | 6 ++++-- 3 files changed, 26 insertions(+), 10 deletions(-) -- 2.31.0