// SPDX-License-Identifier: GPL-2.0 #include <linux/hugetlb.h> #include <linux/err.h> int pud_huge(pud_t pud) { return pud_leaf(pud); } int pmd_huge(pmd_t pmd) { return pmd_leaf(pmd); } bool __init arch_hugetlb_valid_size(unsigned long size) { if (size == HPAGE_SIZE) return true; else if (IS_ENABLED(CONFIG_64BIT) && size == PUD_SIZE) return true; else return false; } #ifdef CONFIG_CONTIG_ALLOC static __init int gigantic_pages_init(void) { /* With CONTIG_ALLOC, we can allocate gigantic pages at runtime */ if (IS_ENABLED(CONFIG_64BIT)) hugetlb_add_hstate(PUD_SHIFT - PAGE_SHIFT); return 0; } arch_initcall(gigantic_pages_init); #endif