Lines Matching refs:vmi
1063 static inline void vma_iter_config(struct vma_iterator *vmi, in vma_iter_config() argument
1066 MAS_BUG_ON(&vmi->mas, vmi->mas.node != MAS_START && in vma_iter_config()
1067 (vmi->mas.index > index || vmi->mas.last < index)); in vma_iter_config()
1068 __mas_set_range(&vmi->mas, index, last - 1); in vma_iter_config()
1074 static inline int vma_iter_prealloc(struct vma_iterator *vmi, in vma_iter_prealloc() argument
1077 return mas_preallocate(&vmi->mas, vma, GFP_KERNEL); in vma_iter_prealloc()
1080 static inline void vma_iter_clear(struct vma_iterator *vmi) in vma_iter_clear() argument
1082 mas_store_prealloc(&vmi->mas, NULL); in vma_iter_clear()
1085 static inline int vma_iter_clear_gfp(struct vma_iterator *vmi, in vma_iter_clear_gfp() argument
1088 __mas_set_range(&vmi->mas, start, end - 1); in vma_iter_clear_gfp()
1089 mas_store_gfp(&vmi->mas, NULL, gfp); in vma_iter_clear_gfp()
1090 if (unlikely(mas_is_err(&vmi->mas))) in vma_iter_clear_gfp()
1096 static inline struct vm_area_struct *vma_iter_load(struct vma_iterator *vmi) in vma_iter_load() argument
1098 return mas_walk(&vmi->mas); in vma_iter_load()
1102 static inline void vma_iter_store(struct vma_iterator *vmi, in vma_iter_store() argument
1107 if (MAS_WARN_ON(&vmi->mas, vmi->mas.node != MAS_START && in vma_iter_store()
1108 vmi->mas.index > vma->vm_start)) { in vma_iter_store()
1110 vmi->mas.index, vma->vm_start, vma->vm_start, in vma_iter_store()
1111 vma->vm_end, vmi->mas.index, vmi->mas.last); in vma_iter_store()
1113 if (MAS_WARN_ON(&vmi->mas, vmi->mas.node != MAS_START && in vma_iter_store()
1114 vmi->mas.last < vma->vm_start)) { in vma_iter_store()
1116 vmi->mas.last, vma->vm_start, vma->vm_start, vma->vm_end, in vma_iter_store()
1117 vmi->mas.index, vmi->mas.last); in vma_iter_store()
1121 if (vmi->mas.node != MAS_START && in vma_iter_store()
1122 ((vmi->mas.index > vma->vm_start) || (vmi->mas.last < vma->vm_start))) in vma_iter_store()
1123 vma_iter_invalidate(vmi); in vma_iter_store()
1125 __mas_set_range(&vmi->mas, vma->vm_start, vma->vm_end - 1); in vma_iter_store()
1126 mas_store_prealloc(&vmi->mas, vma); in vma_iter_store()
1129 static inline int vma_iter_store_gfp(struct vma_iterator *vmi, in vma_iter_store_gfp() argument
1132 if (vmi->mas.node != MAS_START && in vma_iter_store_gfp()
1133 ((vmi->mas.index > vma->vm_start) || (vmi->mas.last < vma->vm_start))) in vma_iter_store_gfp()
1134 vma_iter_invalidate(vmi); in vma_iter_store_gfp()
1136 __mas_set_range(&vmi->mas, vma->vm_start, vma->vm_end - 1); in vma_iter_store_gfp()
1137 mas_store_gfp(&vmi->mas, vma, gfp); in vma_iter_store_gfp()
1138 if (unlikely(mas_is_err(&vmi->mas))) in vma_iter_store_gfp()