[RFC PATCH RESEND 15/28] mm/mmap: mark adjacent VMAs as locked if they can grow into unmapped area
Suren Baghdasaryan
surenb at google.com
Thu Sep 1 10:35:03 PDT 2022
While unmapping VMAs, adjacent VMAs might be able to grow into the area
being unmapped. In such cases mark adjacent VMAs as locked to prevent
this growth.
Signed-off-by: Suren Baghdasaryan <surenb at google.com>
---
mm/mmap.c | 8 ++++++--
1 file changed, 6 insertions(+), 2 deletions(-)
diff --git a/mm/mmap.c b/mm/mmap.c
index b0d78bdc0de0..b31cc97c2803 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -2680,10 +2680,14 @@ detach_vmas_to_be_unmapped(struct mm_struct *mm, struct vm_area_struct *vma,
* VM_GROWSUP VMA. Such VMAs can change their size under
* down_read(mmap_lock) and collide with the VMA we are about to unmap.
*/
- if (vma && (vma->vm_flags & VM_GROWSDOWN))
+ if (vma && (vma->vm_flags & VM_GROWSDOWN)) {
+ vma_mark_locked(vma);
return false;
- if (prev && (prev->vm_flags & VM_GROWSUP))
+ }
+ if (prev && (prev->vm_flags & VM_GROWSUP)) {
+ vma_mark_locked(prev);
return false;
+ }
return true;
}
--
2.37.2.789.g6183377224-goog
More information about the linux-arm-kernel
mailing list