diff options
Diffstat (limited to 'mm/mremap.c')
-rw-r--r-- | mm/mremap.c | 8 |
1 files changed, 5 insertions, 3 deletions
diff --git a/mm/mremap.c b/mm/mremap.c index 1a7743923c8..58a2908f42f 100644 --- a/mm/mremap.c +++ b/mm/mremap.c | |||
@@ -24,6 +24,8 @@ | |||
24 | #include <asm/cacheflush.h> | 24 | #include <asm/cacheflush.h> |
25 | #include <asm/tlbflush.h> | 25 | #include <asm/tlbflush.h> |
26 | 26 | ||
27 | #include "internal.h" | ||
28 | |||
27 | static pmd_t *get_old_pmd(struct mm_struct *mm, unsigned long addr) | 29 | static pmd_t *get_old_pmd(struct mm_struct *mm, unsigned long addr) |
28 | { | 30 | { |
29 | pgd_t *pgd; | 31 | pgd_t *pgd; |
@@ -238,8 +240,8 @@ static unsigned long move_vma(struct vm_area_struct *vma, | |||
238 | if (vm_flags & VM_LOCKED) { | 240 | if (vm_flags & VM_LOCKED) { |
239 | mm->locked_vm += new_len >> PAGE_SHIFT; | 241 | mm->locked_vm += new_len >> PAGE_SHIFT; |
240 | if (new_len > old_len) | 242 | if (new_len > old_len) |
241 | make_pages_present(new_addr + old_len, | 243 | mlock_vma_pages_range(new_vma, new_addr + old_len, |
242 | new_addr + new_len); | 244 | new_addr + new_len); |
243 | } | 245 | } |
244 | 246 | ||
245 | return new_addr; | 247 | return new_addr; |
@@ -379,7 +381,7 @@ unsigned long do_mremap(unsigned long addr, | |||
379 | vm_stat_account(mm, vma->vm_flags, vma->vm_file, pages); | 381 | vm_stat_account(mm, vma->vm_flags, vma->vm_file, pages); |
380 | if (vma->vm_flags & VM_LOCKED) { | 382 | if (vma->vm_flags & VM_LOCKED) { |
381 | mm->locked_vm += pages; | 383 | mm->locked_vm += pages; |
382 | make_pages_present(addr + old_len, | 384 | mlock_vma_pages_range(vma, addr + old_len, |
383 | addr + new_len); | 385 | addr + new_len); |
384 | } | 386 | } |
385 | ret = addr; | 387 | ret = addr; |