12345678910111213141516171819202122232425262728293031323334 |
- // 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
|