From: Liam R. Howlett Date: Mon, 6 Sep 2021 03:31:46 +0000 (-0400) Subject: mmap: Move locking of detached tree. X-Git-Url: https://www.infradead.org/git/?a=commitdiff_plain;h=99864cc08a9cb9345fdb97f7b464ee1dbd589511;p=users%2Fjedix%2Flinux-maple.git mmap: Move locking of detached tree. Fixes lock checking Signed-off-by: Liam R. Howlett --- diff --git a/mm/mmap.c b/mm/mmap.c index a732f116f0ec..a3c8d8b33ff2 100644 --- a/mm/mmap.c +++ b/mm/mmap.c @@ -2404,7 +2404,6 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, * Detach a range of VMAs from the mm. Using next as a temp variable as * it is always overwritten. */ - mas_lock(&mas_detach); mas_for_each(mas, next, end - 1) { /* Does it split the end? */ if (next->vm_end > end) { @@ -2421,13 +2420,14 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, BUG_ON(next->vm_start < start); BUG_ON(next->vm_start > end); #endif + mas_lock(&mas_detach); vma_mas_store(next, &mas_detach); + mas_unlock(&mas_detach); if (next->vm_flags & VM_LOCKED) { mm->locked_vm -= vma_pages(next); munlock_vma_pages_all(next); } } - mas_unlock(&mas_detach); mas_set(mas, end); next = mas_find(mas, ULONG_MAX);