/kernel/linux/linux-6.6/mm/ |
H A D | internal.h | 1204 static inline void vma_iter_config(struct vma_iterator *vmi, in vma_iter_config() argument 1207 MAS_BUG_ON(&vmi->mas, vmi->mas.node != MAS_START && in vma_iter_config() 1208 (vmi->mas.index > index || vmi->mas.last < index)); in vma_iter_config() 1209 __mas_set_range(&vmi->mas, index, last - 1); in vma_iter_config() 1215 static inline int vma_iter_prealloc(struct vma_iterator *vmi, in vma_iter_prealloc() argument 1218 return mas_preallocate(&vmi->mas, vma, GFP_KERNEL); in vma_iter_prealloc() 1221 static inline void vma_iter_clear(struct vma_iterator *vmi) in vma_iter_clear() argument 1223 mas_store_prealloc(&vmi in vma_iter_clear() 1226 vma_iter_clear_gfp(struct vma_iterator *vmi, unsigned long start, unsigned long end, gfp_t gfp) vma_iter_clear_gfp() argument 1237 vma_iter_load(struct vma_iterator *vmi) vma_iter_load() argument 1243 vma_iter_store(struct vma_iterator *vmi, struct vm_area_struct *vma) vma_iter_store() argument 1270 vma_iter_store_gfp(struct vma_iterator *vmi, struct vm_area_struct *vma, gfp_t gfp) vma_iter_store_gfp() argument [all...] |
H A D | mmap.c | 157 static inline struct vm_area_struct *vma_prev_limit(struct vma_iterator *vmi, in vma_prev_limit() argument 160 return mas_prev(&vmi->mas, min); in vma_prev_limit() 182 static int do_brk_flags(struct vma_iterator *vmi, struct vm_area_struct *brkvma, 192 struct vma_iterator vmi; in SYSCALL_DEFINE1() local 235 vma_iter_init(&vmi, mm, newbrk); in SYSCALL_DEFINE1() 236 brkvma = vma_find(&vmi, oldbrk); in SYSCALL_DEFINE1() 245 if (do_vma_munmap(&vmi, brkvma, newbrk, oldbrk, &uf, true)) in SYSCALL_DEFINE1() 258 vma_iter_init(&vmi, mm, oldbrk); in SYSCALL_DEFINE1() 259 next = vma_find(&vmi, newbrk + PAGE_SIZE + stack_guard_gap); in SYSCALL_DEFINE1() 263 brkvma = vma_prev_limit(&vmi, m in SYSCALL_DEFINE1() 516 vma_complete(struct vma_prepare *vp, struct vma_iterator *vmi, struct mm_struct *mm) vma_complete() argument 636 vma_expand(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long start, unsigned long end, pgoff_t pgoff, struct vm_area_struct *next) vma_expand() argument 692 vma_shrink(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long start, unsigned long end, pgoff_t pgoff) vma_shrink() argument 869 vma_merge(struct vma_iterator *vmi, struct mm_struct *mm, struct vm_area_struct *prev, unsigned long addr, unsigned long end, unsigned long vm_flags, struct anon_vma *anon_vma, struct file *file, pgoff_t pgoff, struct mempolicy *policy, struct vm_userfaultfd_ctx vm_userfaultfd_ctx, struct anon_vma_name *anon_name) vma_merge() argument 2366 __split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long addr, int new_below) __split_vma() argument 2448 split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long addr, int new_below) split_vma() argument 2472 do_vmi_align_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma, struct mm_struct *mm, unsigned long start, unsigned long end, struct list_head *uf, bool unlock) do_vmi_align_munmap() argument 2638 do_vmi_munmap(struct vma_iterator *vmi, struct mm_struct *mm, unsigned long start, size_t len, struct list_head *uf, bool unlock) do_vmi_munmap() argument 3072 do_vma_munmap(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long start, unsigned long end, struct list_head *uf, bool unlock) do_vma_munmap() argument 3094 do_brk_flags(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long addr, unsigned long len, unsigned long flags) do_brk_flags() argument [all...] |
H A D | mlock.c | 412 static int mlock_fixup(struct vma_iterator *vmi, struct vm_area_struct *vma, in mlock_fixup() argument 429 *prev = vma_merge(vmi, mm, *prev, start, end, newflags, in mlock_fixup() 438 ret = split_vma(vmi, vma, start, 1); in mlock_fixup() 444 ret = split_vma(vmi, vma, end, 0); in mlock_fixup() 482 VMA_ITERATOR(vmi, current->mm, start); in apply_vma_lock_flags() 491 vma = vma_iter_load(&vmi); in apply_vma_lock_flags() 495 prev = vma_prev(&vmi); in apply_vma_lock_flags() 501 for_each_vma_range(vmi, vma, end) { in apply_vma_lock_flags() 514 error = mlock_fixup(&vmi, vma, &prev, nstart, tmp, newflags); in apply_vma_lock_flags() 517 tmp = vma_iter_end(&vmi); in apply_vma_lock_flags() [all...] |
H A D | nommu.c | 584 VMA_ITERATOR(vmi, vma->vm_mm, vma->vm_start); in delete_vma_from_mm() 586 vma_iter_config(&vmi, vma->vm_start, vma->vm_end); in delete_vma_from_mm() 587 if (vma_iter_prealloc(&vmi, vma)) { in delete_vma_from_mm() 595 vma_iter_clear(&vmi); in delete_vma_from_mm() 628 VMA_ITERATOR(vmi, mm, addr); in find_vma() 630 return vma_iter_load(&vmi); in find_vma() 675 VMA_ITERATOR(vmi, mm, addr); in find_vma_exact() 677 vma = vma_iter_load(&vmi); in find_vma_exact() 1029 VMA_ITERATOR(vmi, current->mm, 0); in do_mmap() 1199 vma_iter_config(&vmi, vm in do_mmap() 1308 split_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long addr, int new_below) split_vma() argument 1386 vmi_shrink_vma(struct vma_iterator *vmi, struct vm_area_struct *vma, unsigned long from, unsigned long to) vmi_shrink_vma() argument [all...] |
H A D | mprotect.c | 576 mprotect_fixup(struct vma_iterator *vmi, struct mmu_gather *tlb, in mprotect_fixup() argument 633 *pprev = vma_merge(vmi, mm, *pprev, start, end, newflags, in mprotect_fixup() 645 error = split_vma(vmi, vma, start, 1); in mprotect_fixup() 651 error = split_vma(vmi, vma, end, 0); in mprotect_fixup() 701 struct vma_iterator vmi; in do_mprotect_pkey() local 741 vma_iter_init(&vmi, current->mm, start); in do_mprotect_pkey() 742 vma = vma_find(&vmi, end); in do_mprotect_pkey() 765 prev = vma_prev(&vmi); in do_mprotect_pkey() 772 for_each_vma_range(vmi, vma, end) { in do_mprotect_pkey() 828 error = mprotect_fixup(&vmi, in do_mprotect_pkey() [all...] |
H A D | mremap.c | 600 struct vma_iterator vmi; in move_vma() local 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() 734 vma = vma_prev(&vmi); in move_vma() 739 vma = vma_next(&vmi); in move_vma() 1004 VMA_ITERATOR(vmi, mm, addr + new_len); in SYSCALL_DEFINE5() 1011 ret = do_vmi_munmap(&vmi, mm, addr + new_len, old_len - new_len, in SYSCALL_DEFINE5() 1039 VMA_ITERATOR(vmi, mm, extension_start); in SYSCALL_DEFINE5() 1056 vma = vma_merge(&vmi, mm, vma, extension_start, in SYSCALL_DEFINE5()
|
H A D | debug.c | 272 void vma_iter_dump_tree(const struct vma_iterator *vmi) in vma_iter_dump_tree() argument 275 mas_dump(&vmi->mas); in vma_iter_dump_tree() 276 mt_dump(vmi->mas.tree, mt_dump_hex); in vma_iter_dump_tree()
|
H A D | mempolicy.c | 388 VMA_ITERATOR(vmi, mm, 0); in mpol_rebind_mm() 391 for_each_vma(vmi, vma) { in mpol_rebind_mm() 814 static int mbind_range(struct vma_iterator *vmi, struct vm_area_struct *vma, in mbind_range() argument 837 merged = vma_merge(vmi, vma->vm_mm, *prev, vmstart, vmend, vma->vm_flags, in mbind_range() 846 err = split_vma(vmi, vma, vmstart, 1); in mbind_range() 852 err = split_vma(vmi, vma, vmend, 0); in mbind_range() 1222 VMA_ITERATOR(vmi, current->mm, start); in new_folio() 1225 for_each_vma(vmi, vma) { in new_folio() 1271 struct vma_iterator vmi; in do_mbind() local 1345 vma_iter_init(&vmi, m in do_mbind() [all...] |
/kernel/linux/linux-6.6/arch/xtensa/kernel/ |
H A D | syscall.c | 61 struct vma_iterator vmi; in arch_get_unmapped_area() local 83 vma_iter_init(&vmi, current->mm, addr); in arch_get_unmapped_area() 84 for_each_vma(vmi, vmm) { in arch_get_unmapped_area()
|
/kernel/linux/linux-6.6/fs/proc/ |
H A D | task_nommu.c | 23 VMA_ITERATOR(vmi, mm, 0); in task_mem() 29 for_each_vma(vmi, vma) { in task_mem() 83 VMA_ITERATOR(vmi, mm, 0); in task_vsize() 88 for_each_vma(vmi, vma) in task_vsize() 98 VMA_ITERATOR(vmi, mm, 0); in task_statm() 104 for_each_vma(vmi, vma) { in task_statm()
|
/kernel/linux/linux-6.6/include/linux/ |
H A D | mm.h | 967 struct vm_area_struct *vma_find(struct vma_iterator *vmi, unsigned long max) in vma_find() argument 969 return mas_find(&vmi->mas, max - 1); in vma_find() 972 static inline struct vm_area_struct *vma_next(struct vma_iterator *vmi) in vma_next() argument 978 return mas_find(&vmi->mas, ULONG_MAX); in vma_next() 982 struct vm_area_struct *vma_iter_next_range(struct vma_iterator *vmi) in vma_iter_next_range() argument 984 return mas_next_range(&vmi->mas, ULONG_MAX); in vma_iter_next_range() 988 static inline struct vm_area_struct *vma_prev(struct vma_iterator *vmi) in vma_prev() argument 990 return mas_prev(&vmi->mas, 0); in vma_prev() 994 struct vm_area_struct *vma_iter_prev_range(struct vma_iterator *vmi) in vma_iter_prev_range() argument 996 return mas_prev_range(&vmi in vma_iter_prev_range() 999 vma_iter_addr(struct vma_iterator *vmi) vma_iter_addr() argument 1004 vma_iter_end(struct vma_iterator *vmi) vma_iter_end() argument 1008 vma_iter_bulk_alloc(struct vma_iterator *vmi, unsigned long count) vma_iter_bulk_alloc() argument 1015 vma_iter_free(struct vma_iterator *vmi) vma_iter_free() argument 1020 vma_iter_bulk_store(struct vma_iterator *vmi, struct vm_area_struct *vma) vma_iter_bulk_store() argument 1032 vma_iter_invalidate(struct vma_iterator *vmi) vma_iter_invalidate() argument 1037 vma_iter_set(struct vma_iterator *vmi, unsigned long addr) vma_iter_set() argument [all...] |
H A D | mmdebug.h | 16 void vma_iter_dump_tree(const struct vma_iterator *vmi);
|
/kernel/linux/linux-6.6/fs/ |
H A D | userfaultfd.c | 654 VMA_ITERATOR(vmi, mm, 0); in userfaultfd_event_wait_completion() 658 for_each_vma(vmi, vma) { in userfaultfd_event_wait_completion() 899 VMA_ITERATOR(vmi, mm, 0); in userfaultfd_release() 916 for_each_vma(vmi, vma) { in userfaultfd_release() 925 prev = vma_merge(&vmi, mm, prev, vma->vm_start, vma->vm_end, in userfaultfd_release() 1327 struct vma_iterator vmi; in userfaultfd_register() local 1372 vma_iter_init(&vmi, mm, start); in userfaultfd_register() 1373 vma = vma_find(&vmi, end); in userfaultfd_register() 1451 } for_each_vma_range(vmi, cur, end); in userfaultfd_register() 1454 vma_iter_set(&vmi, star in userfaultfd_register() 1563 struct vma_iterator vmi; userfaultfd_unregister() local [all...] |
H A D | exec.c | 692 VMA_ITERATOR(vmi, mm, new_start); in shift_arg_pages() 702 if (vma != vma_next(&vmi)) in shift_arg_pages() 705 vma_iter_prev_range(&vmi); in shift_arg_pages() 709 if (vma_expand(&vmi, vma, new_start, old_end, vma->vm_pgoff, NULL)) in shift_arg_pages() 722 next = vma_next(&vmi); in shift_arg_pages() 741 vma_prev(&vmi); in shift_arg_pages() 743 return vma_shrink(&vmi, vma, new_start, new_end, vma->vm_pgoff); in shift_arg_pages() 765 struct vma_iterator vmi; in setup_arg_pages() local 820 vma_iter_init(&vmi, mm, vma->vm_start); in setup_arg_pages() 823 ret = mprotect_fixup(&vmi, in setup_arg_pages() [all...] |
/kernel/linux/linux-6.6/arch/powerpc/mm/book3s32/ |
H A D | tlb.c | 84 VMA_ITERATOR(vmi, mm, 0); in hash__flush_tlb_mm() 92 for_each_vma(vmi, mp) in hash__flush_tlb_mm()
|
/kernel/linux/linux-6.6/arch/x86/entry/vdso/ |
H A D | vma.c | 115 VMA_ITERATOR(vmi, mm, 0); in vdso_join_timens() 118 for_each_vma(vmi, vma) { in vdso_join_timens() 334 VMA_ITERATOR(vmi, mm, 0); in map_vdso_once() 344 for_each_vma(vmi, vma) { in map_vdso_once()
|
/kernel/linux/linux-6.6/arch/loongarch/kernel/ |
H A D | vdso.c | 138 VMA_ITERATOR(vmi, mm, 0); in vdso_join_timens() 141 for_each_vma(vmi, vma) { in vdso_join_timens()
|
/kernel/linux/linux-6.6/arch/riscv/kernel/ |
H A D | vdso.c | 112 VMA_ITERATOR(vmi, mm, 0); in vdso_join_timens() 116 for_each_vma(vmi, vma) { in vdso_join_timens()
|
/kernel/linux/linux-6.6/arch/s390/kernel/ |
H A D | vdso.c | 57 VMA_ITERATOR(vmi, mm, 0); in vdso_join_timens() 61 for_each_vma(vmi, vma) { in vdso_join_timens()
|
/kernel/linux/linux-6.6/arch/parisc/kernel/ |
H A D | cache.c | 712 VMA_ITERATOR(vmi, mm, 0); in mm_total_size() 714 for_each_vma(vmi, vma) { in mm_total_size() 725 VMA_ITERATOR(vmi, mm, 0); in flush_cache_mm() 745 for_each_vma(vmi, vma) in flush_cache_mm()
|
/kernel/linux/linux-6.6/arch/um/kernel/ |
H A D | tlb.c | 588 VMA_ITERATOR(vmi, mm, 0); in flush_tlb_mm() 590 for_each_vma(vmi, vma) in flush_tlb_mm() 598 VMA_ITERATOR(vmi, mm, 0); in force_flush_all() 601 for_each_vma(vmi, vma) in force_flush_all()
|
/kernel/linux/linux-6.6/arch/arm64/kernel/ |
H A D | vdso.c | 136 VMA_ITERATOR(vmi, mm, 0); in vdso_join_timens() 140 for_each_vma(vmi, vma) { in vdso_join_timens()
|
/kernel/linux/linux-6.6/arch/powerpc/kernel/ |
H A D | vdso.c | 118 VMA_ITERATOR(vmi, mm, 0); in vdso_join_timens() 122 for_each_vma(vmi, vma) { in vdso_join_timens()
|
/kernel/linux/linux-6.6/arch/powerpc/mm/book3s64/ |
H A D | subpage_prot.c | 155 VMA_ITERATOR(vmi, mm, addr); in subpage_mark_vma_nohuge() 161 for_each_vma_range(vmi, vma, addr + len) { in subpage_mark_vma_nohuge()
|
/kernel/linux/linux-6.6/drivers/misc/cxl/ |
H A D | fault.c | 297 VMA_ITERATOR(vmi, mm, 0); in cxl_prefault_vma() 302 for_each_vma(vmi, vma) { in cxl_prefault_vma()
|