Lines Matching refs:old_len
237 unsigned long old_addr, unsigned long old_len, in move_vma() argument
265 err = ksm_madvise(vma, old_addr, old_addr + old_len, in move_vma()
276 moved_len = move_page_tables(vma, old_addr, new_vma, new_addr, old_len, in move_vma()
278 if (moved_len < old_len) { in move_vma()
293 old_len = new_len; in move_vma()
297 arch_remap(mm, old_addr, old_addr + old_len, in move_vma()
304 excess = vma->vm_end - vma->vm_start - old_len; in move_vma()
306 old_addr + old_len < vma->vm_end) in move_vma()
322 if (do_munmap(mm, old_addr, old_len) < 0) { in move_vma()
345 unsigned long old_len, unsigned long new_len, unsigned long *p) in vma_to_resize() argument
358 if (old_len > vma->vm_end - addr) in vma_to_resize()
361 if (new_len == old_len) in vma_to_resize()
377 locked += new_len - old_len; in vma_to_resize()
382 if (!may_expand_vm(mm, (new_len - old_len) >> PAGE_SHIFT)) in vma_to_resize()
386 unsigned long charged = (new_len - old_len) >> PAGE_SHIFT; in vma_to_resize()
395 static unsigned long mremap_to(unsigned long addr, unsigned long old_len, in mremap_to() argument
411 if (addr + old_len > new_addr && new_addr + new_len > addr) in mremap_to()
418 if (old_len >= new_len) { in mremap_to()
419 ret = do_munmap(mm, addr+new_len, old_len - new_len); in mremap_to()
420 if (ret && old_len != new_len) in mremap_to()
422 old_len = new_len; in mremap_to()
425 vma = vma_to_resize(addr, old_len, new_len, &charged); in mremap_to()
441 ret = move_vma(vma, addr, old_len, new_len, new_addr, locked); in mremap_to()
471 SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len, in SYSCALL_DEFINE5() argument
490 old_len = PAGE_ALIGN(old_len); in SYSCALL_DEFINE5()
504 ret = mremap_to(addr, old_len, new_addr, new_len, in SYSCALL_DEFINE5()
514 if (old_len >= new_len) { in SYSCALL_DEFINE5()
515 ret = do_munmap(mm, addr+new_len, old_len - new_len); in SYSCALL_DEFINE5()
516 if (ret && old_len != new_len) in SYSCALL_DEFINE5()
525 vma = vma_to_resize(addr, old_len, new_len, &charged); in SYSCALL_DEFINE5()
533 if (old_len == vma->vm_end - addr) { in SYSCALL_DEFINE5()
535 if (vma_expandable(vma, new_len - old_len)) { in SYSCALL_DEFINE5()
536 int pages = (new_len - old_len) >> PAGE_SHIFT; in SYSCALL_DEFINE5()
574 ret = move_vma(vma, addr, old_len, new_len, new_addr, &locked); in SYSCALL_DEFINE5()
582 if (locked && new_len > old_len) in SYSCALL_DEFINE5()
583 mm_populate(new_addr + old_len, new_len - old_len); in SYSCALL_DEFINE5()