Lines Matching refs:old_len
236 unsigned long old_addr, unsigned long old_len, in move_vma() argument
264 err = ksm_madvise(vma, old_addr, old_addr + old_len, in move_vma()
275 moved_len = move_page_tables(vma, old_addr, new_vma, new_addr, old_len, in move_vma()
277 if (moved_len < old_len) { in move_vma()
286 old_len = new_len; in move_vma()
301 excess = vma->vm_end - vma->vm_start - old_len; in move_vma()
303 old_addr + old_len < vma->vm_end) in move_vma()
319 if (do_munmap(mm, old_addr, old_len) < 0) { in move_vma()
342 unsigned long old_len, unsigned long new_len, unsigned long *p) in vma_to_resize() argument
354 if (old_len > vma->vm_end - addr) in vma_to_resize()
358 if (new_len > old_len) { in vma_to_resize()
373 locked += new_len - old_len; in vma_to_resize()
378 if (!may_expand_vm(mm, (new_len - old_len) >> PAGE_SHIFT)) in vma_to_resize()
382 unsigned long charged = (new_len - old_len) >> PAGE_SHIFT; in vma_to_resize()
391 static unsigned long mremap_to(unsigned long addr, unsigned long old_len, in mremap_to() argument
412 if ((addr <= new_addr) && (addr+old_len) > new_addr) in mremap_to()
419 if (old_len >= new_len) { in mremap_to()
420 ret = do_munmap(mm, addr+new_len, old_len - new_len); in mremap_to()
421 if (ret && old_len != new_len) in mremap_to()
423 old_len = new_len; in mremap_to()
426 vma = vma_to_resize(addr, old_len, new_len, &charged); in mremap_to()
442 ret = move_vma(vma, addr, old_len, new_len, new_addr, locked); in mremap_to()
472 SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len, in SYSCALL_DEFINE5() argument
491 old_len = PAGE_ALIGN(old_len); in SYSCALL_DEFINE5()
505 ret = mremap_to(addr, old_len, new_addr, new_len, in SYSCALL_DEFINE5()
515 if (old_len >= new_len) { in SYSCALL_DEFINE5()
516 ret = do_munmap(mm, addr+new_len, old_len - new_len); in SYSCALL_DEFINE5()
517 if (ret && old_len != new_len) in SYSCALL_DEFINE5()
526 vma = vma_to_resize(addr, old_len, new_len, &charged); in SYSCALL_DEFINE5()
534 if (old_len == vma->vm_end - addr) { in SYSCALL_DEFINE5()
536 if (vma_expandable(vma, new_len - old_len)) { in SYSCALL_DEFINE5()
537 int pages = (new_len - old_len) >> PAGE_SHIFT; in SYSCALL_DEFINE5()
575 ret = move_vma(vma, addr, old_len, new_len, new_addr, &locked); in SYSCALL_DEFINE5()
581 if (locked && new_len > old_len) in SYSCALL_DEFINE5()
582 mm_populate(new_addr + old_len, new_len - old_len); in SYSCALL_DEFINE5()