1// SPDX-License-Identifier: GPL-2.0 2#include <linux/hugetlb.h> 3#include <linux/err.h> 4 5int pud_huge(pud_t pud) 6{ 7 return pud_leaf(pud); 8} 9 10int pmd_huge(pmd_t pmd) 11{ 12 return pmd_leaf(pmd); 13} 14 15bool __init arch_hugetlb_valid_size(unsigned long size) 16{ 17 if (size == HPAGE_SIZE) 18 return true; 19 else if (IS_ENABLED(CONFIG_64BIT) && size == PUD_SIZE) 20 return true; 21 else 22 return false; 23} 24 25#ifdef CONFIG_CONTIG_ALLOC 26static __init int gigantic_pages_init(void) 27{ 28 /* With CONTIG_ALLOC, we can allocate gigantic pages at runtime */ 29 if (IS_ENABLED(CONFIG_64BIT)) 30 hugetlb_add_hstate(PUD_SHIFT - PAGE_SHIFT); 31 return 0; 32} 33arch_initcall(gigantic_pages_init); 34#endif 35