Lines Matching refs:dst_mm
22 struct vm_area_struct *find_dst_vma(struct mm_struct *dst_mm, in find_dst_vma() argument
32 dst_vma = find_vma(dst_mm, dst_start); in find_dst_vma()
57 int mfill_atomic_install_pte(struct mm_struct *dst_mm, pmd_t *dst_pmd, in mfill_atomic_install_pte() argument
83 dst_pte = pte_offset_map_lock(dst_mm, dst_pmd, dst_addr, &ptl); in mfill_atomic_install_pte()
108 inc_mm_counter(dst_mm, mm_counter(page)); in mfill_atomic_install_pte()
113 set_pte_at(dst_mm, dst_addr, dst_pte, _dst_pte); in mfill_atomic_install_pte()
123 static int mcopy_atomic_pte(struct mm_struct *dst_mm, in mcopy_atomic_pte() argument
169 if (mem_cgroup_charge(page, dst_mm, GFP_KERNEL)) in mcopy_atomic_pte()
172 ret = mfill_atomic_install_pte(dst_mm, dst_pmd, dst_vma, dst_addr, in mcopy_atomic_pte()
183 static int mfill_zeropage_pte(struct mm_struct *dst_mm, in mfill_zeropage_pte() argument
196 dst_pte = pte_offset_map_lock(dst_mm, dst_pmd, dst_addr, &ptl); in mfill_zeropage_pte()
209 set_pte_at(dst_mm, dst_addr, dst_pte, _dst_pte); in mfill_zeropage_pte()
219 static int mcontinue_atomic_pte(struct mm_struct *dst_mm, in mcontinue_atomic_pte() argument
238 ret = mfill_atomic_install_pte(dst_mm, dst_pmd, dst_vma, dst_addr, in mcontinue_atomic_pte()
279 static __always_inline ssize_t __mcopy_atomic_hugetlb(struct mm_struct *dst_mm, in __mcopy_atomic_hugetlb() argument
305 mmap_read_unlock(dst_mm); in __mcopy_atomic_hugetlb()
329 dst_vma = find_dst_vma(dst_mm, dst_start, len); in __mcopy_atomic_hugetlb()
365 dst_pte = huge_pte_alloc(dst_mm, dst_vma, dst_addr, vma_hpagesize); in __mcopy_atomic_hugetlb()
380 err = hugetlb_mcopy_atomic_pte(dst_mm, dst_pte, dst_vma, in __mcopy_atomic_hugetlb()
390 mmap_read_unlock(dst_mm); in __mcopy_atomic_hugetlb()
401 mmap_read_lock(dst_mm); in __mcopy_atomic_hugetlb()
421 mmap_read_unlock(dst_mm); in __mcopy_atomic_hugetlb()
478 extern ssize_t __mcopy_atomic_hugetlb(struct mm_struct *dst_mm,
486 static __always_inline ssize_t mfill_atomic_pte(struct mm_struct *dst_mm, in mfill_atomic_pte() argument
498 return mcontinue_atomic_pte(dst_mm, dst_pmd, dst_vma, dst_addr, in mfill_atomic_pte()
514 err = mcopy_atomic_pte(dst_mm, dst_pmd, dst_vma, in mfill_atomic_pte()
518 err = mfill_zeropage_pte(dst_mm, dst_pmd, in mfill_atomic_pte()
522 err = shmem_mfill_atomic_pte(dst_mm, dst_pmd, dst_vma, in mfill_atomic_pte()
531 static __always_inline ssize_t __mcopy_atomic(struct mm_struct *dst_mm, in __mcopy_atomic() argument
562 mmap_read_lock(dst_mm); in __mcopy_atomic()
578 dst_vma = find_dst_vma(dst_mm, dst_start, len); in __mcopy_atomic()
603 return __mcopy_atomic_hugetlb(dst_mm, dst_vma, dst_start, in __mcopy_atomic()
626 dst_pmd = mm_alloc_pmd(dst_mm, dst_addr); in __mcopy_atomic()
642 unlikely(__pte_alloc(dst_mm, dst_pmd))) { in __mcopy_atomic()
655 err = mfill_atomic_pte(dst_mm, dst_pmd, dst_vma, dst_addr, in __mcopy_atomic()
662 mmap_read_unlock(dst_mm); in __mcopy_atomic()
692 mmap_read_unlock(dst_mm); in __mcopy_atomic()
702 ssize_t mcopy_atomic(struct mm_struct *dst_mm, unsigned long dst_start, in mcopy_atomic() argument
706 return __mcopy_atomic(dst_mm, dst_start, src_start, len, in mcopy_atomic()
710 ssize_t mfill_zeropage(struct mm_struct *dst_mm, unsigned long start, in mfill_zeropage() argument
713 return __mcopy_atomic(dst_mm, start, 0, len, MCOPY_ATOMIC_ZEROPAGE, in mfill_zeropage()
717 ssize_t mcopy_continue(struct mm_struct *dst_mm, unsigned long start, in mcopy_continue() argument
720 return __mcopy_atomic(dst_mm, start, 0, len, MCOPY_ATOMIC_CONTINUE, in mcopy_continue()
724 int mwriteprotect_range(struct mm_struct *dst_mm, unsigned long start, in mwriteprotect_range() argument
740 mmap_read_lock(dst_mm); in mwriteprotect_range()
752 dst_vma = find_dst_vma(dst_mm, start, len); in mwriteprotect_range()
774 mmap_read_unlock(dst_mm); in mwriteprotect_range()