* Liam Howlett <liam.howlett@xxxxxxxxxx> [220513 10:16]: > There is a leak when the system is low on resources and fails to > allocate enough memory to complete the munmap task. Fix this by adding > the necessary free operations in the unwinding. > > Fixes: a760774e7b7b (mm: start tracking VMAs with maple tree) This is the wrong fixes. It fixes "67/69 mm: remove the vma linked list". > Signed-off-by: Liam R. Howlett <Liam.Howlett@xxxxxxxxxx> > --- > mm/mmap.c | 4 +++- > 1 file changed, 3 insertions(+), 1 deletion(-) > > diff --git a/mm/mmap.c b/mm/mmap.c > index ebfd71a79814..9d41df730b22 100644 > --- a/mm/mmap.c > +++ b/mm/mmap.c > @@ -2365,7 +2365,7 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, > return -ENOMEM; > > if (mas_preallocate(&mas_detach, vma, GFP_KERNEL)) > - return -ENOMEM; > + goto detach_alloc_fail; > > mas->last = end - 1; > /* > @@ -2504,6 +2504,8 @@ do_mas_align_munmap(struct ma_state *mas, struct vm_area_struct *vma, > map_count_exceeded: > split_failed: > userfaultfd_error: > + mas_destroy(&mas_detach); > +detach_alloc_fail: > mas_destroy(mas); > return error; > } > -- > 2.35.1 >