VM: can't go through the inner loop in unmap_vmas() more than once...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
diff --git a/mm/memory.c b/mm/memory.c
index 1b6712a..f2317c8 100644
--- a/mm/memory.c
+++ b/mm/memory.c
@@ -1354,7 +1354,7 @@
if (unlikely(is_pfn_mapping(vma)))
untrack_pfn_vma(vma, 0, 0);
- while (start != end) {
+ if (start != end) {
if (unlikely(is_vm_hugetlb_page(vma))) {
/*
* It is undesirable to test vma->vm_file as it
@@ -1371,8 +1371,8 @@
unmap_hugepage_range(vma, start, end, NULL);
} else
unmap_page_range(tlb, vma, start, end, details);
- start = end;
}
+ start = end;
}
mmu_notifier_invalidate_range_end(mm, start_addr, end_addr);