Message ID | 20240321235818.125118-1-lokeshgidra@google.com (mailing list archive) |
---|---|
State | New |
Headers | show |
Series | userfaultfd: fix deadlock warning when locking src and dst VMAs | expand |
On Thu, 21 Mar 2024 16:58:18 -0700 Lokesh Gidra <lokeshgidra@google.com> wrote: > Use down_read_nested() to avoid the warning. > > --- a/mm/userfaultfd.c > +++ b/mm/userfaultfd.c > @@ -1444,7 +1444,8 @@ static int uffd_move_lock(struct mm_struct *mm, > */ > down_read(&(*dst_vmap)->vm_lock->lock); > if (*dst_vmap != *src_vmap) > - down_read(&(*src_vmap)->vm_lock->lock); > + down_read_nested(&(*src_vmap)->vm_lock->lock, > + SINGLE_DEPTH_NESTING); > } > mmap_read_unlock(mm); > return err; Thanks, I added Fixes: 867a43a34ff8a ("userfaultfd: use per-vma locks in userfaultfd operations")
diff --git a/mm/userfaultfd.c b/mm/userfaultfd.c index 712160cd41ec..3c3539c573e7 100644 --- a/mm/userfaultfd.c +++ b/mm/userfaultfd.c @@ -1444,7 +1444,8 @@ static int uffd_move_lock(struct mm_struct *mm, */ down_read(&(*dst_vmap)->vm_lock->lock); if (*dst_vmap != *src_vmap) - down_read(&(*src_vmap)->vm_lock->lock); + down_read_nested(&(*src_vmap)->vm_lock->lock, + SINGLE_DEPTH_NESTING); } mmap_read_unlock(mm); return err;
Use down_read_nested() to avoid the warning. Reported-by: syzbot+49056626fe41e01f2ba7@syzkaller.appspotmail.com Signed-off-by: Lokesh Gidra <lokeshgidra@google.com> --- mm/userfaultfd.c | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-)