summaryrefslogtreecommitdiff
path: root/mm
diff options
context:
space:
mode:
authorDaiane Angolini <daiane.angolini@foundries.io>2022-11-08 09:20:25 -0300
committerDaiane Angolini <daiane.angolini@foundries.io>2022-11-08 09:20:25 -0300
commitb115353e00d8f22bb04b0a84b641d0fb18df738f (patch)
tree8b50c6be40a3fa04a68f781737b2a3d170a4b106 /mm
parent4151687a6d3d0c6454b08b9cbf7bb34971c4fb67 (diff)
parent820b689b4a7a6ca1b4fdabf26a17196a2e379a97 (diff)
Merge tag 'v5.15.69' into 5.15-2.1.x-imx
This is the 5.15.69 stable release Conflicts: drivers/soc/fsl/Kconfig Signed-off-by: Daiane Angolini <daiane.angolini@foundries.io>
Diffstat (limited to 'mm')
-rw-r--r--mm/mmap.c9
1 files changed, 7 insertions, 2 deletions
diff --git a/mm/mmap.c b/mm/mmap.c
index cd1d2680ac58..5c2c7651ca29 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -2638,6 +2638,7 @@ static void unmap_region(struct mm_struct *mm,
{
struct vm_area_struct *next = vma_next(mm, prev);
struct mmu_gather tlb;
+ struct vm_area_struct *cur_vma;
lru_add_drain();
tlb_gather_mmu(&tlb, mm);
@@ -2652,8 +2653,12 @@ static void unmap_region(struct mm_struct *mm,
* concurrent flush in this region has to be coming through the rmap,
* and we synchronize against that using the rmap lock.
*/
- if ((vma->vm_flags & (VM_PFNMAP|VM_MIXEDMAP)) != 0)
- tlb_flush_mmu(&tlb);
+ for (cur_vma = vma; cur_vma; cur_vma = cur_vma->vm_next) {
+ if ((cur_vma->vm_flags & (VM_PFNMAP|VM_MIXEDMAP)) != 0) {
+ tlb_flush_mmu(&tlb);
+ break;
+ }
+ }
free_pgtables(&tlb, vma, prev ? prev->vm_end : FIRST_USER_ADDRESS,
next ? next->vm_start : USER_PGTABLES_CEILING);