diff options
author | Al Viro <viro@zeniv.linux.org.uk> | 2012-03-05 13:35:49 -0500 |
---|---|---|
committer | Al Viro <viro@zeniv.linux.org.uk> | 2012-03-20 21:39:50 -0400 |
commit | 8b2a12382ccc9df31b27dac37fe04dffe088b57c (patch) | |
tree | 77e79b540a288b3c2bce78bfd7aff4c58511ecd1 /mm/memory.c | |
parent | 038c7aa16a38059ac23dfe9caa6954226ea20728 (diff) |
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, | |||
1354 | if (unlikely(is_pfn_mapping(vma))) | 1354 | if (unlikely(is_pfn_mapping(vma))) |
1355 | untrack_pfn_vma(vma, 0, 0); | 1355 | untrack_pfn_vma(vma, 0, 0); |
1356 | 1356 | ||
1357 | while (start != end) { | 1357 | if (start != end) { |
1358 | if (unlikely(is_vm_hugetlb_page(vma))) { | 1358 | if (unlikely(is_vm_hugetlb_page(vma))) { |
1359 | /* | 1359 | /* |
1360 | * It is undesirable to test vma->vm_file as it | 1360 | * It is undesirable to test vma->vm_file as it |
@@ -1371,8 +1371,8 @@ unsigned long unmap_vmas(struct mmu_gather *tlb, | |||
1371 | unmap_hugepage_range(vma, start, end, NULL); | 1371 | unmap_hugepage_range(vma, start, end, NULL); |
1372 | } else | 1372 | } else |
1373 | unmap_page_range(tlb, vma, start, end, details); | 1373 | unmap_page_range(tlb, vma, start, end, details); |
1374 | start = end; | ||
1375 | } | 1374 | } |
1375 | start = end; | ||
1376 | } | 1376 | } |
1377 | 1377 | ||
1378 | mmu_notifier_invalidate_range_end(mm, start_addr, end_addr); | 1378 | mmu_notifier_invalidate_range_end(mm, start_addr, end_addr); |