Re: [PATCH 1/2] mm: protect free_pgtables with mmap_lock write lock in exit_mmap

From: Matthew Wilcox
Date: Tue Nov 23 2021 - 08:19:53 EST


On Tue, Nov 16, 2021 at 01:57:14PM -0800, Suren Baghdasaryan wrote:
> @@ -3170,6 +3172,7 @@ void exit_mmap(struct mm_struct *mm)
> unmap_vmas(&tlb, vma, 0, -1);
> free_pgtables(&tlb, vma, FIRST_USER_ADDRESS, USER_PGTABLES_CEILING);
> tlb_finish_mmu(&tlb);
> + mmap_write_unlock(mm);
>
> /*
> * Walk the list again, actually closing and freeing it,

Is there a reason to unlock here instead of after the remove_vma loop?
We'll need the mmap sem held during that loop when VMAs are stored in
the maple tree.