On Thu, Mar 09, 2023 at 12:12:53PM +0100, Vlastimil Babka wrote: > It is more intuitive to go from prev to mid and then next. No functional > change. > > Signed-off-by: Vlastimil Babka <vbabka@xxxxxxx> > --- > mm/mmap.c | 9 +++++---- > 1 file changed, 5 insertions(+), 4 deletions(-) > > diff --git a/mm/mmap.c b/mm/mmap.c > index 420d6847c94c..be60b344e4b1 100644 > --- a/mm/mmap.c > +++ b/mm/mmap.c > @@ -912,10 +912,11 @@ struct vm_area_struct *vma_merge(struct vma_iterator *vmi, struct mm_struct *mm, > if (vm_flags & VM_SPECIAL) > return NULL; > > - next = find_vma(mm, prev ? prev->vm_end : 0); > - mid = next; > - if (next && next->vm_end == end) /* cases 6, 7, 8 */ > - next = find_vma(mm, next->vm_end); > + mid = find_vma(mm, prev ? prev->vm_end : 0); > + if (mid && mid->vm_end == end) /* cases 6, 7, 8 */ > + next = find_vma(mm, mid->vm_end); > + else > + next = mid; It feels like the original implementation may have been backwards like this just to avoid this else branch. Which is silly. > > /* verify some invariant that must be enforced by the caller */ > VM_WARN_ON(prev && addr <= prev->vm_start); > -- > 2.39.2 > Reviewed-by: Lorenzo Stoakes <lstoakes@xxxxxxxxx>