VM: can't go through the inner loop in unmap_vmas() more than once...
Signed-off-by: Al Viro <viro@zeniv.linux.org.uk>
This commit is contained in:
parent
038c7aa16a
commit
8b2a12382c
|
@ -1354,7 +1354,7 @@ unsigned long unmap_vmas(struct mmu_gather *tlb,
|
||||||
if (unlikely(is_pfn_mapping(vma)))
|
if (unlikely(is_pfn_mapping(vma)))
|
||||||
untrack_pfn_vma(vma, 0, 0);
|
untrack_pfn_vma(vma, 0, 0);
|
||||||
|
|
||||||
while (start != end) {
|
if (start != end) {
|
||||||
if (unlikely(is_vm_hugetlb_page(vma))) {
|
if (unlikely(is_vm_hugetlb_page(vma))) {
|
||||||
/*
|
/*
|
||||||
* It is undesirable to test vma->vm_file as it
|
* 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);
|
unmap_hugepage_range(vma, start, end, NULL);
|
||||||
} else
|
} else
|
||||||
unmap_page_range(tlb, vma, start, end, details);
|
unmap_page_range(tlb, vma, start, end, details);
|
||||||
start = end;
|
|
||||||
}
|
}
|
||||||
|
start = end;
|
||||||
}
|
}
|
||||||
|
|
||||||
mmu_notifier_invalidate_range_end(mm, start_addr, end_addr);
|
mmu_notifier_invalidate_range_end(mm, start_addr, end_addr);
|
||||||
|
|
Loading…
Reference in New Issue