mm: HUGE_VMAP arch support cleanup
authorNicholas Piggin <npiggin@gmail.com>
Fri, 30 Apr 2021 05:58:26 +0000 (22:58 -0700)
committerLinus Torvalds <torvalds@linux-foundation.org>
Fri, 30 Apr 2021 18:20:40 +0000 (11:20 -0700)
commitbbc180a5adb05ee8053fab7a0c0bd56c5964240e
tree386f4b3660b5924424a6d36689c3eb3c773588fc
parent95f0ddf081af3a77433090d9deaf3f76f5648336
mm: HUGE_VMAP arch support cleanup

This changes the awkward approach where architectures provide init
functions to determine which levels they can provide large mappings for,
to one where the arch is queried for each call.

This removes code and indirection, and allows constant-folding of dead
code for unsupported levels.

This also adds a prot argument to the arch query.  This is unused
currently but could help with some architectures (e.g., some powerpc
processors can't map uncacheable memory with large pages).

Link: https://lkml.kernel.org/r/20210317062402.533919-7-npiggin@gmail.com
Signed-off-by: Nicholas Piggin <npiggin@gmail.com>
Reviewed-by: Ding Tianhong <dingtianhong@huawei.com>
Acked-by: Catalin Marinas <catalin.marinas@arm.com> [arm64]
Cc: Will Deacon <will@kernel.org>
Cc: Thomas Gleixner <tglx@linutronix.de>
Cc: Ingo Molnar <mingo@redhat.com>
Cc: Borislav Petkov <bp@alien8.de>
Cc: "H. Peter Anvin" <hpa@zytor.com>
Cc: Christoph Hellwig <hch@lst.de>
Cc: Miaohe Lin <linmiaohe@huawei.com>
Cc: Michael Ellerman <mpe@ellerman.id.au>
Cc: Russell King <linux@armlinux.org.uk>
Cc: Uladzislau Rezki (Sony) <urezki@gmail.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
arch/arm64/include/asm/vmalloc.h
arch/arm64/mm/mmu.c
arch/powerpc/include/asm/vmalloc.h
arch/powerpc/mm/book3s64/radix_pgtable.c
arch/x86/include/asm/vmalloc.h
arch/x86/mm/ioremap.c
include/linux/io.h
include/linux/vmalloc.h
init/main.c
mm/debug_vm_pgtable.c
mm/ioremap.c