]> git.ipfire.org Git - thirdparty/kernel/stable.git/blame - arch/riscv/include/asm/hugetlb.h
Merge tag 'kvm-x86-misc-6.7' of https://github.com/kvm-x86/linux into HEAD
[thirdparty/kernel/stable.git] / arch / riscv / include / asm / hugetlb.h
CommitLineData
9e953cda
AG
1/* SPDX-License-Identifier: GPL-2.0 */
2#ifndef _ASM_RISCV_HUGETLB_H
3#define _ASM_RISCV_HUGETLB_H
4
33a9fb09 5#include <asm/cacheflush.h>
9e953cda
AG
6#include <asm/page.h>
7
d8bf77a1
TT
8static inline void arch_clear_hugepage_flags(struct page *page)
9{
10 clear_bit(PG_dcache_clean, &page->flags);
11}
12#define arch_clear_hugepage_flags arch_clear_hugepage_flags
13
82a1a1f3
QP
14#ifdef CONFIG_RISCV_ISA_SVNAPOT
15#define __HAVE_ARCH_HUGE_PTE_CLEAR
16void huge_pte_clear(struct mm_struct *mm, unsigned long addr,
17 pte_t *ptep, unsigned long sz);
18
19#define __HAVE_ARCH_HUGE_SET_HUGE_PTE_AT
20void set_huge_pte_at(struct mm_struct *mm,
935d4f0c
RR
21 unsigned long addr, pte_t *ptep, pte_t pte,
22 unsigned long sz);
82a1a1f3
QP
23
24#define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR
25pte_t huge_ptep_get_and_clear(struct mm_struct *mm,
26 unsigned long addr, pte_t *ptep);
27
28#define __HAVE_ARCH_HUGE_PTEP_CLEAR_FLUSH
29pte_t huge_ptep_clear_flush(struct vm_area_struct *vma,
30 unsigned long addr, pte_t *ptep);
31
32#define __HAVE_ARCH_HUGE_PTEP_SET_WRPROTECT
33void huge_ptep_set_wrprotect(struct mm_struct *mm,
34 unsigned long addr, pte_t *ptep);
35
36#define __HAVE_ARCH_HUGE_PTEP_SET_ACCESS_FLAGS
37int huge_ptep_set_access_flags(struct vm_area_struct *vma,
38 unsigned long addr, pte_t *ptep,
39 pte_t pte, int dirty);
40
6966d798
AG
41#define __HAVE_ARCH_HUGE_PTEP_GET
42pte_t huge_ptep_get(pte_t *ptep);
43
82a1a1f3
QP
44pte_t arch_make_huge_pte(pte_t entry, unsigned int shift, vm_flags_t flags);
45#define arch_make_huge_pte arch_make_huge_pte
46
47#endif /*CONFIG_RISCV_ISA_SVNAPOT*/
48
49#include <asm-generic/hugetlb.h>
50
9e953cda 51#endif /* _ASM_RISCV_HUGETLB_H */