aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
-rw-r--r--mm/mmap.c10
1 files changed, 6 insertions, 4 deletions
diff --git a/mm/mmap.c b/mm/mmap.c
index eb1270bebe67..00ced3ee49a8 100644
--- a/mm/mmap.c
+++ b/mm/mmap.c
@@ -2084,12 +2084,8 @@ void exit_mmap(struct mm_struct *mm)
2084 unsigned long end; 2084 unsigned long end;
2085 2085
2086 /* mm's last user has gone, and its about to be pulled down */ 2086 /* mm's last user has gone, and its about to be pulled down */
2087 arch_exit_mmap(mm);
2088 mmu_notifier_release(mm); 2087 mmu_notifier_release(mm);
2089 2088
2090 if (!mm->mmap) /* Can happen if dup_mmap() received an OOM */
2091 return;
2092
2093 if (mm->locked_vm) { 2089 if (mm->locked_vm) {
2094 vma = mm->mmap; 2090 vma = mm->mmap;
2095 while (vma) { 2091 while (vma) {
@@ -2098,7 +2094,13 @@ void exit_mmap(struct mm_struct *mm)
2098 vma = vma->vm_next; 2094 vma = vma->vm_next;
2099 } 2095 }
2100 } 2096 }
2097
2098 arch_exit_mmap(mm);
2099
2101 vma = mm->mmap; 2100 vma = mm->mmap;
2101 if (!vma) /* Can happen if dup_mmap() received an OOM */
2102 return;
2103
2102 lru_add_drain(); 2104 lru_add_drain();
2103 flush_cache_mm(mm); 2105 flush_cache_mm(mm);
2104 tlb = tlb_gather_mmu(mm, 1); 2106 tlb = tlb_gather_mmu(mm, 1);