On Mon, Aug 14, 2023 at 9:15 PM Andrew Morton <akpm@xxxxxxxxxxxxxxxxxxxx> wrote: > On Mon, 14 Aug 2023 16:54:01 +0200 Jann Horn <jannh@xxxxxxxxxx> wrote: > > > > @@ -403,6 +403,8 @@ static int vma_link(struct mm_struct *mm, struct vm_area_struct *vma) > > > > > > vma_iter_store(&vmi, vma); > > > > > > + vma_start_write(vma); > > > + > > > if (vma->vm_file) { > > > mapping = vma->vm_file->f_mapping; > > > i_mmap_lock_write(mapping); > > > > The "vma_start_write()" has to be ordered before the > > "vma_iter_store(&vmi, vma)". > > Thanks. This? > > > --- a/mm/mmap.c~mm-always-lock-new-vma-before-inserting-into-vma-tree-fix > +++ a/mm/mmap.c > @@ -401,10 +401,10 @@ static int vma_link(struct mm_struct *mm > if (vma_iter_prealloc(&vmi, vma)) > return -ENOMEM; > > - vma_iter_store(&vmi, vma); > - > vma_start_write(vma); > > + vma_iter_store(&vmi, vma); > + > if (vma->vm_file) { > mapping = vma->vm_file->f_mapping; > i_mmap_lock_write(mapping); Yes, thanks, that looks good.