tlb_gather_mmu(&tlb, mm, start, end);
update_hiwater_rss(mm);
unmap_vmas_mt(&tlb, vma, mas, start, end);
- free_pgtables(&tlb, vma, prev ? prev->vm_end : FIRST_USER_ADDRESS, max);
+ free_pgtables(&tlb, vma,
+ prev ? prev->vm_end : FIRST_USER_ADDRESS,
+ max);
tlb_finish_mmu(&tlb, start, end);
}
/*
flush_cache_mm(mm);
tlb_gather_mmu(&tlb, mm, 0, -1);
/* update_hiwater_rss(mm) here? but nobody should be looking */
- /* Use -1 here to ensure all VMAs in the mm are unmapped */
- unmap_vmas(&tlb, vma, 0, -1);
- free_pgtables(&tlb, vma, FIRST_USER_ADDRESS, USER_PGTABLES_CEILING);
+ mas_reset(&mas);
+ mas_set(&mas, FIRST_USER_ADDRESS);
+ /* Use 0 here to ensure all VMAs in the mm are unmapped */
+// unmap_vmas(&tlb, vma, 0, -1);
+ unmap_vmas_mt(&tlb, vma, &mas, 0, -1);
+ mas_reset(&mas);
+ mas_set(&mas, FIRST_USER_ADDRESS);
+// free_pgtables(&tlb, vma, FIRST_USER_ADDRESS, USER_PGTABLES_CEILING);
+ free_mt_pgtables(&tlb, vma, &mas, FIRST_USER_ADDRESS, USER_PGTABLES_CEILING);
tlb_finish_mmu(&tlb, 0, -1);
/*