| Date | Tue, 6 Sep 2022 11:04:19 -0700 | From | Davidlohr Bueso <> | Subject | Re: [PATCH v13 59/70] mm/mremap: use vma_find_intersection() instead of vma linked list |
| |
On Mon, 22 Aug 2022, Liam Howlett wrote:
>From: "Liam R. Howlett" <Liam.Howlett@Oracle.com>
-ENOCHANGELOG
> >Signed-off-by: Liam R. Howlett <Liam.Howlett@Oracle.com> >Acked-by: Vlastimil Babka <vbabka@suse.cz>
Reviewed-by: Davidlohr Bueso <dave@stgolabs.net>
>--- > mm/mremap.c | 5 +++-- > 1 file changed, 3 insertions(+), 2 deletions(-) > >diff --git a/mm/mremap.c b/mm/mremap.c >index e0fba9004246..8644ff278f02 100644 >--- a/mm/mremap.c >+++ b/mm/mremap.c >@@ -716,7 +716,7 @@ static unsigned long move_vma(struct vm_area_struct *vma, > if (excess) { > vma->vm_flags |= VM_ACCOUNT; > if (split) >- vma->vm_next->vm_flags |= VM_ACCOUNT; >+ find_vma(mm, vma->vm_end)->vm_flags |= VM_ACCOUNT; > } > > return new_addr; >@@ -866,9 +866,10 @@ static unsigned long mremap_to(unsigned long addr, unsigned long old_len, > static int vma_expandable(struct vm_area_struct *vma, unsigned long delta) > { > unsigned long end = vma->vm_end + delta; >+ > if (end < vma->vm_end) /* overflow */ > return 0; >- if (vma->vm_next && vma->vm_next->vm_start < end) /* intersection */ >+ if (find_vma_intersection(vma->vm_mm, vma->vm_end, end)) > return 0; > if (get_unmapped_area(NULL, vma->vm_start, end - vma->vm_start, > 0, MAP_FIXED) & ~PAGE_MASK) > >-- >2.35.1 >
|