11f059dfdSIngo Molnar #ifndef _ASM_ARM64_VMALLOC_H 21f059dfdSIngo Molnar #define _ASM_ARM64_VMALLOC_H 31f059dfdSIngo Molnar 4bbc180a5SNicholas Piggin #include <asm/page.h> 5bbc180a5SNicholas Piggin 6bbc180a5SNicholas Piggin #ifdef CONFIG_HAVE_ARCH_HUGE_VMAP 7*168a6333SNicholas Piggin static inline bool arch_vmap_p4d_supported(pgprot_t prot) 8*168a6333SNicholas Piggin { 9*168a6333SNicholas Piggin return false; 10*168a6333SNicholas Piggin } 11*168a6333SNicholas Piggin 12*168a6333SNicholas Piggin static inline bool arch_vmap_pud_supported(pgprot_t prot) 13*168a6333SNicholas Piggin { 14*168a6333SNicholas Piggin /* 15*168a6333SNicholas Piggin * Only 4k granule supports level 1 block mappings. 16*168a6333SNicholas Piggin * SW table walks can't handle removal of intermediate entries. 17*168a6333SNicholas Piggin */ 18*168a6333SNicholas Piggin return IS_ENABLED(CONFIG_ARM64_4K_PAGES) && 19*168a6333SNicholas Piggin !IS_ENABLED(CONFIG_PTDUMP_DEBUGFS); 20*168a6333SNicholas Piggin } 21*168a6333SNicholas Piggin 22*168a6333SNicholas Piggin static inline bool arch_vmap_pmd_supported(pgprot_t prot) 23*168a6333SNicholas Piggin { 24*168a6333SNicholas Piggin /* See arch_vmap_pud_supported() */ 25*168a6333SNicholas Piggin return !IS_ENABLED(CONFIG_PTDUMP_DEBUGFS); 26*168a6333SNicholas Piggin } 27bbc180a5SNicholas Piggin #endif 28bbc180a5SNicholas Piggin 291f059dfdSIngo Molnar #endif /* _ASM_ARM64_VMALLOC_H */ 30