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()
173 old_pte = pte_offset_map_lock(mm, old_pmd, old_addr, &old_ptl); in move_ptes()
189 for (; old_addr < old_end; old_pte++, old_addr += PAGE_SIZE, in move_ptes()
194 pte = ptep_get_and_clear(mm, old_addr, old_pte); in move_ptes()
208 pte = move_pte(pte, new_vma->vm_page_prot, old_addr, new_addr); in move_ptes()
236 static bool move_normal_pmd(struct vm_area_struct *vma, unsigned long old_addr, in move_normal_pmd() argument
287 flush_tlb_range(vma, old_addr, old_addr + PMD_SIZE); in move_normal_pmd()
296 unsigned long old_addr, unsigned long new_addr, pmd_t *old_pmd, in move_normal_pmd() argument
304 static bool move_normal_pud(struct vm_area_struct *vma, unsigned long old_addr, in move_normal_pud() argument
336 flush_tlb_range(vma, old_addr, old_addr + PUD_SIZE); in move_normal_pud()
345 unsigned long old_addr, unsigned long new_addr, pud_t *old_pud, in move_normal_pud() argument
353 static bool move_huge_pud(struct vm_area_struct *vma, unsigned long old_addr, in move_huge_pud() argument
385 flush_pud_tlb_range(vma, old_addr, old_addr + HPAGE_PUD_SIZE); in move_huge_pud()
393 static bool move_huge_pud(struct vm_area_struct *vma, unsigned long old_addr, in move_huge_pud() argument
415 unsigned long old_addr, unsigned long old_end, in get_extent() argument
436 next = (old_addr + size) & mask; in get_extent()
438 extent = next - old_addr; in get_extent()
439 if (extent > old_end - old_addr) in get_extent()
440 extent = old_end - old_addr; in get_extent()
452 unsigned long old_addr, unsigned long new_addr, in move_pgt_entry() argument
463 moved = move_normal_pmd(vma, old_addr, new_addr, old_entry, in move_pgt_entry()
467 moved = move_normal_pud(vma, old_addr, new_addr, old_entry, in move_pgt_entry()
472 move_huge_pmd(vma, old_addr, new_addr, old_entry, in move_pgt_entry()
477 move_huge_pud(vma, old_addr, new_addr, old_entry, in move_pgt_entry()
493 unsigned long old_addr, struct vm_area_struct *new_vma, in move_page_tables() argument
505 old_end = old_addr + len; in move_page_tables()
508 return move_hugetlb_page_tables(vma, new_vma, old_addr, in move_page_tables()
511 flush_cache_range(vma, old_addr, old_end); in move_page_tables()
513 old_addr, old_end); in move_page_tables()
516 for (; old_addr < old_end; old_addr += extent, new_addr += extent) { in move_page_tables()
522 extent = get_extent(NORMAL_PUD, old_addr, old_end, new_addr); in move_page_tables()
524 old_pud = get_old_pud(vma->vm_mm, old_addr); in move_page_tables()
532 move_pgt_entry(HPAGE_PUD, vma, old_addr, new_addr, in move_page_tables()
539 if (move_pgt_entry(NORMAL_PUD, vma, old_addr, new_addr, in move_page_tables()
544 extent = get_extent(NORMAL_PMD, old_addr, old_end, new_addr); in move_page_tables()
545 old_pmd = get_old_pmd(vma->vm_mm, old_addr); in move_page_tables()
555 move_pgt_entry(HPAGE_PMD, vma, old_addr, new_addr, in move_page_tables()
558 split_huge_pmd(vma, old_pmd, old_addr); in move_page_tables()
565 if (move_pgt_entry(NORMAL_PMD, vma, old_addr, new_addr, in move_page_tables()
573 if (move_ptes(vma, old_pmd, old_addr, old_addr + extent, in move_page_tables()
580 return len + old_addr - old_end; /* how much done */ in move_page_tables()
584 unsigned long old_addr, unsigned long old_len, in move_vma() argument
613 if (vma->vm_start != old_addr) in move_vma()
614 err = vma->vm_ops->may_split(vma, old_addr); in move_vma()
615 if (!err && vma->vm_end != old_addr + old_len) in move_vma()
616 err = vma->vm_ops->may_split(vma, old_addr + old_len); in move_vma()
628 err = ksm_madvise(vma, old_addr, old_addr + old_len, in move_vma()
639 new_pgoff = vma->vm_pgoff + ((old_addr - vma->vm_start) >> PAGE_SHIFT); in move_vma()
648 moved_len = move_page_tables(vma, old_addr, new_vma, new_addr, old_len, in move_vma()
662 move_page_tables(new_vma, new_addr, vma, old_addr, moved_len, in move_vma()
666 old_addr = new_addr; in move_vma()
679 if (vma->vm_start < old_addr) in move_vma()
681 if (vma->vm_end > old_addr + old_len) in move_vma()
709 if (new_vma != vma && vma->vm_start == old_addr && in move_vma()
710 vma->vm_end == (old_addr + old_len)) in move_vma()
717 vma_iter_init(&vmi, mm, old_addr); in move_vma()
718 if (do_vmi_munmap(&vmi, mm, old_addr, old_len, uf_unmap, false) < 0) { in move_vma()