]>
Commit | Line | Data |
---|---|---|
9e953cda AG |
1 | // SPDX-License-Identifier: GPL-2.0 |
2 | #include <linux/hugetlb.h> | |
3 | #include <linux/err.h> | |
4 | ||
5 | int pud_huge(pud_t pud) | |
6 | { | |
3133287b | 7 | return pud_leaf(pud); |
9e953cda AG |
8 | } |
9 | ||
10 | int pmd_huge(pmd_t pmd) | |
11 | { | |
3133287b | 12 | return pmd_leaf(pmd); |
9e953cda AG |
13 | } |
14 | ||
ae94da89 MK |
15 | bool __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 | ||
9e953cda AG |
25 | #ifdef CONFIG_CONTIG_ALLOC |
26 | static __init int gigantic_pages_init(void) | |
27 | { | |
28 | /* With CONTIG_ALLOC, we can allocate gigantic pages at runtime */ | |
38237830 | 29 | if (IS_ENABLED(CONFIG_64BIT)) |
9e953cda AG |
30 | hugetlb_add_hstate(PUD_SHIFT - PAGE_SHIFT); |
31 | return 0; | |
32 | } | |
33 | arch_initcall(gigantic_pages_init); | |
34 | #endif |