Merge tag 'perf-urgent-for-mingo' of git://git.kernel.org/pub/scm/linux/kernel/git...
[deliverable/linux.git] / mm / mremap.c
index 3b639a4b26bd3a29d3f46318cb4f5be23abb54c6..1b61c2d3307a800c9c958e5f949d81fb76515899 100644 (file)
@@ -149,11 +149,15 @@ unsigned long move_page_tables(struct vm_area_struct *vma,
        unsigned long extent, next, old_end;
        pmd_t *old_pmd, *new_pmd;
        bool need_flush = false;
+       unsigned long mmun_start;       /* For mmu_notifiers */
+       unsigned long mmun_end;         /* For mmu_notifiers */
 
        old_end = old_addr + len;
        flush_cache_range(vma, old_addr, old_end);
 
-       mmu_notifier_invalidate_range_start(vma->vm_mm, old_addr, old_end);
+       mmun_start = old_addr;
+       mmun_end   = old_end;
+       mmu_notifier_invalidate_range_start(vma->vm_mm, mmun_start, mmun_end);
 
        for (; old_addr < old_end; old_addr += extent, new_addr += extent) {
                cond_resched();
@@ -197,7 +201,7 @@ unsigned long move_page_tables(struct vm_area_struct *vma,
        if (likely(need_flush))
                flush_tlb_range(vma, old_end-len, old_addr);
 
-       mmu_notifier_invalidate_range_end(vma->vm_mm, old_end-len, old_end);
+       mmu_notifier_invalidate_range_end(vma->vm_mm, mmun_start, mmun_end);
 
        return len + old_addr - old_end;        /* how much done */
 }
This page took 0.033245 seconds and 5 git commands to generate.