Lines Matching refs:old_addr
137 unsigned long old_addr, unsigned long old_end, in move_ptes() argument
145 unsigned long len = old_end - old_addr; in move_ptes()
172 old_pte = pte_offset_map_lock(mm, old_pmd, old_addr, &old_ptl); in move_ptes()
180 for (; old_addr < old_end; old_pte++, old_addr += PAGE_SIZE, in move_ptes()
185 pte = ptep_get_and_clear(mm, old_addr, old_pte); in move_ptes()
199 pte = move_pte(pte, new_vma->vm_page_prot, old_addr, new_addr); in move_ptes()
225 static bool move_normal_pmd(struct vm_area_struct *vma, unsigned long old_addr, in move_normal_pmd() argument
276 flush_tlb_range(vma, old_addr, old_addr + PMD_SIZE); in move_normal_pmd()
285 unsigned long old_addr, unsigned long new_addr, pmd_t *old_pmd, in move_normal_pmd() argument
293 static bool move_normal_pud(struct vm_area_struct *vma, unsigned long old_addr, in move_normal_pud() argument
325 flush_tlb_range(vma, old_addr, old_addr + PUD_SIZE); in move_normal_pud()
334 unsigned long old_addr, unsigned long new_addr, pud_t *old_pud, in move_normal_pud() argument
342 static bool move_huge_pud(struct vm_area_struct *vma, unsigned long old_addr, in move_huge_pud() argument
374 flush_pud_tlb_range(vma, old_addr, old_addr + HPAGE_PUD_SIZE); in move_huge_pud()
382 static bool move_huge_pud(struct vm_area_struct *vma, unsigned long old_addr, in move_huge_pud() argument
404 unsigned long old_addr, unsigned long old_end, in get_extent() argument
425 next = (old_addr + size) & mask; in get_extent()
427 extent = next - old_addr; in get_extent()
428 if (extent > old_end - old_addr) in get_extent()
429 extent = old_end - old_addr; in get_extent()
441 unsigned long old_addr, unsigned long new_addr, in move_pgt_entry() argument
452 moved = move_normal_pmd(vma, old_addr, new_addr, old_entry, in move_pgt_entry()
456 moved = move_normal_pud(vma, old_addr, new_addr, old_entry, in move_pgt_entry()
461 move_huge_pmd(vma, old_addr, new_addr, old_entry, in move_pgt_entry()
466 move_huge_pud(vma, old_addr, new_addr, old_entry, in move_pgt_entry()
482 unsigned long old_addr, struct vm_area_struct *new_vma, in move_page_tables() argument
494 old_end = old_addr + len; in move_page_tables()
497 return move_hugetlb_page_tables(vma, new_vma, old_addr, in move_page_tables()
500 flush_cache_range(vma, old_addr, old_end); in move_page_tables()
502 old_addr, old_end); in move_page_tables()
505 for (; old_addr < old_end; old_addr += extent, new_addr += extent) { in move_page_tables()
511 extent = get_extent(NORMAL_PUD, old_addr, old_end, new_addr); in move_page_tables()
513 old_pud = get_old_pud(vma->vm_mm, old_addr); in move_page_tables()
521 move_pgt_entry(HPAGE_PUD, vma, old_addr, new_addr, in move_page_tables()
528 if (move_pgt_entry(NORMAL_PUD, vma, old_addr, new_addr, in move_page_tables()
533 extent = get_extent(NORMAL_PMD, old_addr, old_end, new_addr); in move_page_tables()
534 old_pmd = get_old_pmd(vma->vm_mm, old_addr); in move_page_tables()
543 move_pgt_entry(HPAGE_PMD, vma, old_addr, new_addr, in move_page_tables()
546 split_huge_pmd(vma, old_pmd, old_addr); in move_page_tables()
555 if (move_pgt_entry(NORMAL_PMD, vma, old_addr, new_addr, in move_page_tables()
562 move_ptes(vma, old_pmd, old_addr, old_addr + extent, new_vma, in move_page_tables()
568 return len + old_addr - old_end; /* how much done */ in move_page_tables()
572 unsigned long old_addr, unsigned long old_len, in move_vma() argument
601 if (vma->vm_start != old_addr) in move_vma()
602 err = vma->vm_ops->may_split(vma, old_addr); in move_vma()
603 if (!err && vma->vm_end != old_addr + old_len) in move_vma()
604 err = vma->vm_ops->may_split(vma, old_addr + old_len); in move_vma()
616 err = ksm_madvise(vma, old_addr, old_addr + old_len, in move_vma()
626 new_pgoff = vma->vm_pgoff + ((old_addr - vma->vm_start) >> PAGE_SHIFT); in move_vma()
635 moved_len = move_page_tables(vma, old_addr, new_vma, new_addr, old_len, in move_vma()
649 move_page_tables(new_vma, new_addr, vma, old_addr, moved_len, in move_vma()
653 old_addr = new_addr; in move_vma()
666 if (vma->vm_start < old_addr) in move_vma()
668 if (vma->vm_end > old_addr + old_len) in move_vma()
696 if (new_vma != vma && vma->vm_start == old_addr && in move_vma()
697 vma->vm_end == (old_addr + old_len)) in move_vma()
704 vma_iter_init(&vmi, mm, old_addr); in move_vma()
705 if (do_vmi_munmap(&vmi, mm, old_addr, old_len, uf_unmap, false) < 0) { in move_vma()