xref: /openbmc/linux/arch/arm64/include/asm/vmalloc.h (revision 4f2c0a4acffbec01079c28f839422e64ddeff004)
11f059dfdSIngo Molnar #ifndef _ASM_ARM64_VMALLOC_H
21f059dfdSIngo Molnar #define _ASM_ARM64_VMALLOC_H
31f059dfdSIngo Molnar 
4bbc180a5SNicholas Piggin #include <asm/page.h>
5f8b46c4bSAnshuman Khandual #include <asm/pgtable.h>
6bbc180a5SNicholas Piggin 
7bbc180a5SNicholas Piggin #ifdef CONFIG_HAVE_ARCH_HUGE_VMAP
8168a6333SNicholas Piggin 
96f680e70SNicholas Piggin #define arch_vmap_pud_supported arch_vmap_pud_supported
arch_vmap_pud_supported(pgprot_t prot)10168a6333SNicholas Piggin static inline bool arch_vmap_pud_supported(pgprot_t prot)
11168a6333SNicholas Piggin {
12168a6333SNicholas Piggin 	/*
13168a6333SNicholas Piggin 	 * SW table walks can't handle removal of intermediate entries.
14168a6333SNicholas Piggin 	 */
15f8b46c4bSAnshuman Khandual 	return pud_sect_supported() &&
16168a6333SNicholas Piggin 	       !IS_ENABLED(CONFIG_PTDUMP_DEBUGFS);
17168a6333SNicholas Piggin }
18168a6333SNicholas Piggin 
196f680e70SNicholas Piggin #define arch_vmap_pmd_supported arch_vmap_pmd_supported
arch_vmap_pmd_supported(pgprot_t prot)20168a6333SNicholas Piggin static inline bool arch_vmap_pmd_supported(pgprot_t prot)
21168a6333SNicholas Piggin {
22168a6333SNicholas Piggin 	/* See arch_vmap_pud_supported() */
23168a6333SNicholas Piggin 	return !IS_ENABLED(CONFIG_PTDUMP_DEBUGFS);
24168a6333SNicholas Piggin }
256f680e70SNicholas Piggin 
26bbc180a5SNicholas Piggin #endif
27bbc180a5SNicholas Piggin 
28*01d92c7fSAndrey Konovalov #define arch_vmap_pgprot_tagged arch_vmap_pgprot_tagged
arch_vmap_pgprot_tagged(pgprot_t prot)29*01d92c7fSAndrey Konovalov static inline pgprot_t arch_vmap_pgprot_tagged(pgprot_t prot)
30*01d92c7fSAndrey Konovalov {
31*01d92c7fSAndrey Konovalov 	return pgprot_tagged(prot);
32*01d92c7fSAndrey Konovalov }
33*01d92c7fSAndrey Konovalov 
341f059dfdSIngo Molnar #endif /* _ASM_ARM64_VMALLOC_H */
35