The patch titled Subject: mm/ioremap: probe platform for p4d huge map support has been added to the -mm tree. Its filename is mm-ioremap-probe-platform-for-p4d-huge-map-support.patch This patch should soon appear at http://ozlabs.org/~akpm/mmots/broken-out/mm-ioremap-probe-platform-for-p4d-huge-map-support.patch and later at http://ozlabs.org/~akpm/mmotm/broken-out/mm-ioremap-probe-platform-for-p4d-huge-map-support.patch Before you just go and hit "reply", please: a) Consider who else should be cc'ed b) Prefer to cc a suitable mailing list as well c) Ideally: find the original patch on the mailing list and do a reply-to-all to that, adding suitable additional cc's *** Remember to use Documentation/process/submit-checklist.rst when testing your code *** The -mm tree is included into linux-next and is updated there every 3-4 working days ------------------------------------------------------ From: Anshuman Khandual <anshuman.khandual@xxxxxxx> Subject: mm/ioremap: probe platform for p4d huge map support Finish up what c2febafc67734a ("mm: convert generic code to 5-level paging") started while levelling up P4D huge mapping support at par with PUD and PMD. A new arch call back arch_ioremap_p4d_supported() is added which just maintains status quo (P4D huge map not supported) on x86, arm64 and powerpc. Link: http://lkml.kernel.org/r/1561699231-20991-1-git-send-email-anshuman.khandual@xxxxxxx Signed-off-by: Anshuman Khandual <anshuman.khandual@xxxxxxx> Acked-by: Thomas Gleixner <tglx@xxxxxxxxxxxxx> Acked-by: Michael Ellerman <mpe@xxxxxxxxxxxxxx> (powerpc) Cc: Catalin Marinas <catalin.marinas@xxxxxxx> Cc: Will Deacon <will.deacon@xxxxxxx> Cc: Dave Hansen <dave.hansen@xxxxxxxxxxxxxxx> Cc: Andy Lutomirski <luto@xxxxxxxxxx> Cc: Peter Zijlstra <peterz@xxxxxxxxxxxxx> Cc: Ingo Molnar <mingo@xxxxxxxxxx> Cc: Kirill A. Shutemov <kirill.shutemov@xxxxxxxxxxxxxxx> Cc: Michal Hocko <mhocko@xxxxxxxxxx> Cc: Stephen Rothwell <sfr@xxxxxxxxxxxxxxxx> Signed-off-by: Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> --- arch/arm64/mm/mmu.c | 5 +++++ arch/powerpc/mm/book3s64/radix_pgtable.c | 5 +++++ arch/x86/mm/ioremap.c | 5 +++++ include/linux/io.h | 1 + lib/ioremap.c | 2 ++ 5 files changed, 18 insertions(+) --- a/arch/arm64/mm/mmu.c~mm-ioremap-probe-platform-for-p4d-huge-map-support +++ a/arch/arm64/mm/mmu.c @@ -942,6 +942,11 @@ void *__init fixmap_remap_fdt(phys_addr_ return dt_virt; } +int __init arch_ioremap_p4d_supported(void) +{ + return 0; +} + int __init arch_ioremap_pud_supported(void) { /* --- a/arch/powerpc/mm/book3s64/radix_pgtable.c~mm-ioremap-probe-platform-for-p4d-huge-map-support +++ a/arch/powerpc/mm/book3s64/radix_pgtable.c @@ -1118,3 +1118,8 @@ void radix__ptep_modify_prot_commit(stru set_pte_at(mm, addr, ptep, pte); } + +int __init arch_ioremap_p4d_supported(void) +{ + return 0; +} --- a/arch/x86/mm/ioremap.c~mm-ioremap-probe-platform-for-p4d-huge-map-support +++ a/arch/x86/mm/ioremap.c @@ -440,6 +440,11 @@ void iounmap(volatile void __iomem *addr } EXPORT_SYMBOL(iounmap); +int __init arch_ioremap_p4d_supported(void) +{ + return 0; +} + int __init arch_ioremap_pud_supported(void) { #ifdef CONFIG_X86_64 --- a/include/linux/io.h~mm-ioremap-probe-platform-for-p4d-huge-map-support +++ a/include/linux/io.h @@ -33,6 +33,7 @@ static inline int ioremap_page_range(uns #ifdef CONFIG_HAVE_ARCH_HUGE_VMAP void __init ioremap_huge_init(void); +int arch_ioremap_p4d_supported(void); int arch_ioremap_pud_supported(void); int arch_ioremap_pmd_supported(void); #else --- a/lib/ioremap.c~mm-ioremap-probe-platform-for-p4d-huge-map-support +++ a/lib/ioremap.c @@ -30,6 +30,8 @@ early_param("nohugeiomap", set_nohugeiom void __init ioremap_huge_init(void) { if (!ioremap_huge_disabled) { + if (arch_ioremap_p4d_supported()) + ioremap_p4d_capable = 1; if (arch_ioremap_pud_supported()) ioremap_pud_capable = 1; if (arch_ioremap_pmd_supported()) _ Patches currently in -mm which might be from anshuman.khandual@xxxxxxx are mm-pgtable-drop-pgtable_t-variable-from-pte_fn_t-functions.patch mm-ioremap-check-virtual-address-alignment-while-creating-huge-mappings.patch mm-ioremap-probe-platform-for-p4d-huge-map-support.patch mm-generalize-and-rename-notify_page_fault-as-kprobe_page_fault.patch mm-generalize-and-rename-notify_page_fault-as-kprobe_page_fault-fix.patch