This patch series map all the kernel regions (vmalloc, IO and vmemmap) using 0xc top nibble address. This brings hash translation kernel mapping in sync with radix. Each of these regions can now map 512TB. We use one context to map these regions and hence the 512TB limit. We also update radix to use the same limit even though we don't have context related restrictions there.
With this we have for 4K kernel vmalloc start = 0xc008000000000000 kernel IO start = 0xc008100000000000 kernel vmemmap start = 0xc008200000000000 64K hash, 64K radix and 4k radix: kernel vmalloc start = 0xc008000000000000 kernel IO start = 0xc00a000000000000 kernel vmemmap start = 0xc00c000000000000 Changes from v3: * Make 4k page size hash translation vmalloc start address to be same as hash 64k and radix. Aneesh Kumar K.V (8): powerpc/mm/hash64: Add a variable to track the end of IO mapping powerpc/mm/hash64: Map all the kernel regions in the same 0xc range powerpc/mm: Validate address values against different region limits powerpc/mm: Drop the unnecessary region check powerpc/mm/hash: Simplify the region id calculation. powerpc/mm: Print kernel map details to dmesg powerpc/mm/hash: Rename KERNEL_REGION_ID to LINEAR_MAP_REGION_ID powerpc/mm/hash/4K: Update the vmalloc start for hash 4K config arch/powerpc/include/asm/book3s/64/hash-4k.h | 21 ++++ arch/powerpc/include/asm/book3s/64/hash-64k.h | 12 +++ arch/powerpc/include/asm/book3s/64/hash.h | 95 ++++++++++++------- arch/powerpc/include/asm/book3s/64/mmu-hash.h | 42 ++++---- arch/powerpc/include/asm/book3s/64/mmu.h | 9 +- arch/powerpc/include/asm/book3s/64/pgtable.h | 9 +- arch/powerpc/include/asm/book3s/64/radix.h | 40 ++++---- arch/powerpc/include/asm/page.h | 11 --- arch/powerpc/kernel/setup-common.c | 3 + arch/powerpc/kvm/book3s_hv_rm_xics.c | 2 +- arch/powerpc/mm/copro_fault.c | 18 ++-- arch/powerpc/mm/hash_utils_64.c | 45 ++++++--- arch/powerpc/mm/pgtable-hash64.c | 13 ++- arch/powerpc/mm/pgtable-radix.c | 24 ++++- arch/powerpc/mm/pgtable_64.c | 9 +- arch/powerpc/mm/ptdump/hashpagetable.c | 2 +- arch/powerpc/mm/ptdump/ptdump.c | 3 +- arch/powerpc/mm/slb.c | 26 +++-- arch/powerpc/platforms/cell/spu_base.c | 4 +- drivers/misc/cxl/fault.c | 2 +- drivers/misc/ocxl/link.c | 2 +- 21 files changed, 254 insertions(+), 138 deletions(-) -- 2.20.1