From 99864cc08a9cb9345fdb97f7b464ee1dbd589511 Mon Sep 17 00:00:00 2001 From: "Liam R. Howlett" Date: Sun, 5 Sep 2021 23:31:46 -0400 Subject: [PATCH] mmap: Move locking of detached tree. Fixes lock checking Signed-off-by: Liam R. Howlett --- mm/mmap.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) 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); -- 2.50.1