hc
2024-12-19 9370bb92b2d16684ee45cf24e879c93c509162da
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
// 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