lkml.org 
[lkml]   [2023]   [Jul]   [14]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
Date
From
SubjectRe: [PATCH stable v6.1] mm/mmap: Fix extra maple tree write
* Vlastimil Babka <vbabka@suse.cz> [230714 10:44]:
> On 7/12/23 02:54, Liam R. Howlett wrote:
> > * Liam R. Howlett <Liam.Howlett@Oracle.com> [230707 12:45]:
> >> * Greg KH <gregkh@linuxfoundation.org> [230707 11:55]:
> >> > On Thu, Jul 06, 2023 at 02:51:35PM -0400, Liam R. Howlett wrote:
> >> > > commit 0503ea8f5ba73eb3ab13a81c1eefbaf51405385a upstream.
> >> > >
> >> > > This was inadvertently fixed during the removal of __vma_adjust().
> >> > >
> >> > > When __vma_adjust() is adjusting next with a negative value (pushing
> >> > > vma->vm_end lower), there would be two writes to the maple tree. The
> >> > > first write is unnecessary and uses all allocated nodes in the maple
> >> > > state. The second write is necessary but will need to allocate nodes
> >> > > since the first write has used the allocated nodes. This may be a
> >> > > problem as it may not be safe to allocate at this time, such as a low
> >> > > memory situation. Fix the issue by avoiding the first write and only
> >> > > write the adjusted "next" VMA.
> >> >
> >> > Are you sure this is the same git id? The one you reference above is
> >> > _VERY_ different from your 2 line change below.
> >> >
> >> > And the changelog text is not the same.
> >>
> >> Yes, but I am not sure I've indicated what happened correctly.
>
> "commit 0503ea8f5ba73eb3ab13a81c1eefbaf51405385a upstream." is indeed not
> the best indication. For stable it would mean you're backporting said
> commit, which is not the case.

Okay, thanks. I am certainly not doing that.

>
> >> The bug exists in the older __vma_adjust() function, but I removed
> >> __vma_adjust() and inadvertently fixed the bug. So the bug doesn't
> >> exist upstream *because* of that commit:
> >>
> >> 0503ea8f5ba7 ("mm/mmap: remove __vma_adjust()")
> >>
> >> My comment after the commit id indicates what happened, but the
> >> documentation wasn't clear to me on how to specify what happened.
>
> I think it's because the process discourages stable-specific fixes. However
> this is the case where such approach is much simpler than backporting
> several series with non-trivial vma_merge() cleanups and subsequent
> follow-up fixes...

Thanks, and I agree. I want to avoid that at all costs. The chances of
introducing subtle bugs would be unacceptable for stable.

>
> So I agree with the exceptional stable-specific fix. Can you pinpoint a
> Fixes: tag? Some of the commits introducing the maple tree?

Fixes: 3b0e81a1cdc9 ("mmap: change zeroing of maple tree in __vma_adjust()")

Thanks for the response & explanation,
Liam

\
 
 \ /
  Last update: 2023-07-16 20:50    [W:0.059 / U:0.324 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site