Merge tag 'devicetree-for-5.15' of git://git.kernel.org/pub/scm/linux/kernel/git...
[linux-2.6-microblaze.git] / arch / riscv / mm / hugetlbpage.c
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 {
7         return pud_leaf(pud);
8 }
9
10 int pmd_huge(pmd_t pmd)
11 {
12         return pmd_leaf(pmd);
13 }
14
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
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 */
29         if (IS_ENABLED(CONFIG_64BIT))
30                 hugetlb_add_hstate(PUD_SHIFT - PAGE_SHIFT);
31         return 0;
32 }
33 arch_initcall(gigantic_pages_init);
34 #endif