2020void set_huge_pte_at (struct mm_struct * mm , unsigned long addr ,
2121 pte_t * ptep , pte_t pte , unsigned long sz );
2222void __set_huge_pte_at (struct mm_struct * mm , unsigned long addr ,
23- pte_t * ptep , pte_t pte );
23+ pte_t * ptep , pte_t pte );
24+
2425#define __HAVE_ARCH_HUGE_PTEP_GET
25- extern pte_t huge_ptep_get (struct mm_struct * mm , unsigned long addr , pte_t * ptep );
26+ pte_t huge_ptep_get (struct mm_struct * mm , unsigned long addr , pte_t * ptep );
27+
2628#define __HAVE_ARCH_HUGE_PTEP_GET_AND_CLEAR
27- extern pte_t huge_ptep_get_and_clear (struct mm_struct * mm ,
28- unsigned long addr , pte_t * ptep );
29+ pte_t huge_ptep_get_and_clear (struct mm_struct * mm , unsigned long addr , pte_t * ptep );
2930
3031static inline void arch_clear_hugetlb_flags (struct folio * folio )
3132{
@@ -56,6 +57,7 @@ static inline int huge_ptep_set_access_flags(struct vm_area_struct *vma,
5657 pte_t pte , int dirty )
5758{
5859 int changed = !pte_same (huge_ptep_get (vma -> vm_mm , addr , ptep ), pte );
60+
5961 if (changed ) {
6062 huge_ptep_get_and_clear (vma -> vm_mm , addr , ptep );
6163 __set_huge_pte_at (vma -> vm_mm , addr , ptep , pte );
@@ -68,19 +70,8 @@ static inline void huge_ptep_set_wrprotect(struct mm_struct *mm,
6870 unsigned long addr , pte_t * ptep )
6971{
7072 pte_t pte = huge_ptep_get_and_clear (mm , addr , ptep );
71- __set_huge_pte_at (mm , addr , ptep , pte_wrprotect (pte ));
72- }
7373
74- #define __HAVE_ARCH_HUGE_PTE_NONE
75- static inline int huge_pte_none (pte_t pte )
76- {
77- return pte_none (pte );
78- }
79-
80- #define __HAVE_ARCH_HUGE_PTE_NONE_MOSTLY
81- static inline int huge_pte_none_mostly (pte_t pte )
82- {
83- return huge_pte_none (pte ) || is_pte_marker (pte );
74+ __set_huge_pte_at (mm , addr , ptep , pte_wrprotect (pte ));
8475}
8576
8677#define __HAVE_ARCH_HUGE_PTE_MKUFFD_WP
0 commit comments