Lines Matching refs:old_len

651 		unsigned long old_addr, unsigned long old_len,
656 long to_account = new_len - old_len;
682 if (!err && vma->vm_end != old_addr + old_len)
683 err = vma->vm_ops->may_split(vma, old_addr + old_len);
695 err = ksm_madvise(vma, old_addr, old_addr + old_len,
715 moved_len = move_page_tables(vma, old_addr, new_vma, new_addr, old_len,
717 if (moved_len < old_len) {
732 old_len = new_len;
748 if (vma->vm_end > old_addr + old_len)
754 * since do_munmap() will decrement it by old_len == new_len.
777 vma->vm_end == (old_addr + old_len))
785 if (do_vmi_munmap(&vmi, mm, old_addr, old_len, uf_unmap, false) < 0) {
788 vm_acct_memory(old_len >> PAGE_SHIFT);
814 unsigned long old_len, unsigned long new_len, unsigned long flags)
825 * !old_len is a special case where an attempt is made to 'duplicate'
832 if (!old_len && !(vma->vm_flags & (VM_SHARED | VM_MAYSHARE))) {
842 if (old_len > vma->vm_end - addr)
845 if (new_len == old_len)
857 if (!mlock_future_ok(mm, vma->vm_flags, new_len - old_len))
861 (new_len - old_len) >> PAGE_SHIFT))
867 static unsigned long mremap_to(unsigned long addr, unsigned long old_len,
885 if (addr + old_len > new_addr && new_addr + new_len > addr)
911 if (old_len > new_len) {
912 ret = do_munmap(mm, addr+new_len, old_len - new_len, uf_unmap);
915 old_len = new_len;
918 vma = vma_to_resize(addr, old_len, new_len, flags);
924 /* MREMAP_DONTUNMAP expands by old_len since old_len == new_len */
926 !may_expand_vm(mm, vma->vm_flags, old_len >> PAGE_SHIFT)) {
947 ret = move_vma(vma, addr, old_len, new_len, new_addr, locked, flags, uf,
975 SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
1011 (!(flags & MREMAP_MAYMOVE) || old_len != new_len))
1018 old_len = PAGE_ALIGN(old_len);
1040 old_len = ALIGN(old_len, huge_page_size(h));
1053 if (new_len > old_len)
1058 ret = mremap_to(addr, old_len, new_addr, new_len,
1070 if (old_len >= new_len) {
1073 if (old_len == new_len) {
1078 ret = do_vmi_munmap(&vmi, mm, addr + new_len, old_len - new_len,
1090 vma = vma_to_resize(addr, old_len, new_len, flags);
1096 /* old_len exactly to the end of the area..
1098 if (old_len == vma->vm_end - addr) {
1099 unsigned long delta = new_len - old_len;
1161 ret = move_vma(vma, addr, old_len, new_len, new_addr,
1168 if (locked && new_len > old_len)
1169 mm_populate(new_addr + old_len, new_len - old_len);
1172 mremap_userfaultfd_complete(&uf, addr, ret, old_len);