diff options
Diffstat (limited to 'mm/mremap.c')
-rw-r--r-- | mm/mremap.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/mm/mremap.c b/mm/mremap.c index 7c15cf3373ad..9c769fa29f32 100644 --- a/mm/mremap.c +++ b/mm/mremap.c | |||
@@ -98,6 +98,7 @@ static void move_ptes(struct vm_area_struct *vma, pmd_t *old_pmd, | |||
98 | new_ptl = pte_lockptr(mm, new_pmd); | 98 | new_ptl = pte_lockptr(mm, new_pmd); |
99 | if (new_ptl != old_ptl) | 99 | if (new_ptl != old_ptl) |
100 | spin_lock_nested(new_ptl, SINGLE_DEPTH_NESTING); | 100 | spin_lock_nested(new_ptl, SINGLE_DEPTH_NESTING); |
101 | arch_enter_lazy_mmu_mode(); | ||
101 | 102 | ||
102 | for (; old_addr < old_end; old_pte++, old_addr += PAGE_SIZE, | 103 | for (; old_addr < old_end; old_pte++, old_addr += PAGE_SIZE, |
103 | new_pte++, new_addr += PAGE_SIZE) { | 104 | new_pte++, new_addr += PAGE_SIZE) { |
@@ -109,6 +110,7 @@ static void move_ptes(struct vm_area_struct *vma, pmd_t *old_pmd, | |||
109 | set_pte_at(mm, new_addr, new_pte, pte); | 110 | set_pte_at(mm, new_addr, new_pte, pte); |
110 | } | 111 | } |
111 | 112 | ||
113 | arch_leave_lazy_mmu_mode(); | ||
112 | if (new_ptl != old_ptl) | 114 | if (new_ptl != old_ptl) |
113 | spin_unlock(new_ptl); | 115 | spin_unlock(new_ptl); |
114 | pte_unmap_nested(new_pte - 1); | 116 | pte_unmap_nested(new_pte - 1); |