Re: [syzbot] Re: [syzbot] [kernel?] WARNING in follow_pte

From: syzbot
Date: Wed Jul 03 2024 - 22:48:44 EST


For archival purposes, forwarding an incoming command email to
linux-kernel@xxxxxxxxxxxxxxx.

***

Subject: Re: [syzbot] [kernel?] WARNING in follow_pte
Author: lizhi.xu@xxxxxxxxxxxxx

Fixes: c5541ba378e3 ("mm: follow_pte() improvements")
It introduced mmap_assert_locked(mm) in follow_pte.
This case content does not hold mm lock.

#syz test: upstream 734610514cb0


diff --git a/mm/memory.c b/mm/memory.c
index 25a77c4fe4a0..18bc74dd0b72 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -1909,6 +1909,7 @@ void zap_page_range_single(struct vm_area_struct *vma, unsigned long address,
lru_add_drain();
mmu_notifier_range_init(&range, MMU_NOTIFY_CLEAR, 0, vma->vm_mm,
address, end);
+ mmap_read_lock(vma->vm_mm);
hugetlb_zap_begin(vma, &range.start, &range.end);
tlb_gather_mmu(&tlb, vma->vm_mm);
update_hiwater_rss(vma->vm_mm);
@@ -1921,6 +1922,7 @@ void zap_page_range_single(struct vm_area_struct *vma, unsigned long address,
mmu_notifier_invalidate_range_end(&range);
tlb_finish_mmu(&tlb);
hugetlb_zap_end(vma, details);
+ mmap_read_unlock(vma->vm_mm);
}

/**