From: Peter Xu Subject: fixup! mm/hugetlb: Only drop uffd-wp special pte if required fix sparse warning Link: https://lkml.kernel.org/r/Ylcdw8I1L5iAoWhb@xz-m1.local Signed-off-by: Peter Xu Reported-by: kernel test robot Signed-off-by: Andrew Morton --- fs/hugetlbfs/inode.c | 2 +- include/linux/hugetlb.h | 6 +++--- mm/hugetlb.c | 6 +++--- mm/memory.c | 2 +- 4 files changed, 8 insertions(+), 8 deletions(-) --- a/fs/hugetlbfs/inode.c~mm-hugetlb-only-drop-uffd-wp-special-pte-if-required-fix +++ a/fs/hugetlbfs/inode.c @@ -406,7 +406,7 @@ static void remove_huge_page(struct page static void hugetlb_vmdelete_list(struct rb_root_cached *root, pgoff_t start, pgoff_t end, - unsigned long zap_flags) + zap_flags_t zap_flags) { struct vm_area_struct *vma; --- a/include/linux/hugetlb.h~mm-hugetlb-only-drop-uffd-wp-special-pte-if-required-fix +++ a/include/linux/hugetlb.h @@ -144,11 +144,11 @@ long follow_hugetlb_page(struct mm_struc int *); void unmap_hugepage_range(struct vm_area_struct *, unsigned long, unsigned long, struct page *, - unsigned long); + zap_flags_t); void __unmap_hugepage_range_final(struct mmu_gather *tlb, struct vm_area_struct *vma, unsigned long start, unsigned long end, - struct page *ref_page, unsigned long zap_flags); + struct page *ref_page, zap_flags_t zap_flags); void hugetlb_report_meminfo(struct seq_file *); int hugetlb_report_node_meminfo(char *buf, int len, int nid); void hugetlb_show_meminfo(void); @@ -408,7 +408,7 @@ static inline unsigned long hugetlb_chan static inline void __unmap_hugepage_range_final(struct mmu_gather *tlb, struct vm_area_struct *vma, unsigned long start, unsigned long end, struct page *ref_page, - unsigned long zap_flags) + zap_flags_t zap_flags) { BUG(); } --- a/mm/hugetlb.c~mm-hugetlb-only-drop-uffd-wp-special-pte-if-required-fix +++ a/mm/hugetlb.c @@ -4960,7 +4960,7 @@ int move_hugetlb_page_tables(struct vm_a static void __unmap_hugepage_range(struct mmu_gather *tlb, struct vm_area_struct *vma, unsigned long start, unsigned long end, - struct page *ref_page, unsigned long zap_flags) + struct page *ref_page, zap_flags_t zap_flags) { struct mm_struct *mm = vma->vm_mm; unsigned long address; @@ -5094,7 +5094,7 @@ static void __unmap_hugepage_range(struc void __unmap_hugepage_range_final(struct mmu_gather *tlb, struct vm_area_struct *vma, unsigned long start, unsigned long end, struct page *ref_page, - unsigned long zap_flags) + zap_flags_t zap_flags) { __unmap_hugepage_range(tlb, vma, start, end, ref_page, zap_flags); @@ -5113,7 +5113,7 @@ void __unmap_hugepage_range_final(struct void unmap_hugepage_range(struct vm_area_struct *vma, unsigned long start, unsigned long end, struct page *ref_page, - unsigned long zap_flags) + zap_flags_t zap_flags) { struct mmu_gather tlb; --- a/mm/memory.c~mm-hugetlb-only-drop-uffd-wp-special-pte-if-required-fix +++ a/mm/memory.c @@ -1675,7 +1675,7 @@ static void unmap_single_vma(struct mmu_ * safe to do nothing in this case. */ if (vma->vm_file) { - unsigned long zap_flags = details ? + zap_flags_t zap_flags = details ? details->zap_flags : 0; i_mmap_lock_write(vma->vm_file->f_mapping); __unmap_hugepage_range_final(tlb, vma, start, end, _