diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-03-05 22:35:49 +0400 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-03-21 05:39:50 +0400 |
commit | 8b2a12382ccc9df31b27dac37fe04dffe088b57c (patch) | |
tree | 77e79b540a288b3c2bce78bfd7aff4c58511ecd1 /mm/memory.c | |
parent | 038c7aa16a38059ac23dfe9caa6954226ea20728 (diff) | |
download | linux-8b2a12382ccc9df31b27dac37fe04dffe088b57c.tar.xz |
VM: can't go through the inner loop in unmap_vmas() more than once...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
Diffstat (limited to 'mm/memory.c')
-rw-r--r-- | mm/memory.c | 4 |
1 files changed, 2 insertions, 2 deletions
diff --git a/mm/memory.c b/mm/memory.c index 1b6712a9720d..f2317c85704e 100644 --- a/mm/memory.c +++ b/mm/memory.c @@ -1354,7 +1354,7 @@ unsigned long unmap_vmas(struct mmu_gather *tlb, 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 @@ unsigned long unmap_vmas(struct mmu_gather *tlb, 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); |