Lines Matching refs:interval_sub

117 mn_itree_inv_next(struct mmu_interval_notifier *interval_sub,  in mn_itree_inv_next()  argument
122 node = interval_tree_iter_next(&interval_sub->interval_tree, in mn_itree_inv_next()
131 struct mmu_interval_notifier *interval_sub; in mn_itree_inv_end() local
150 hlist_for_each_entry_safe(interval_sub, next, in mn_itree_inv_end()
153 if (RB_EMPTY_NODE(&interval_sub->interval_tree.rb)) in mn_itree_inv_end()
154 interval_tree_insert(&interval_sub->interval_tree, in mn_itree_inv_end()
157 interval_tree_remove(&interval_sub->interval_tree, in mn_itree_inv_end()
159 hlist_del(&interval_sub->deferred_item); in mn_itree_inv_end()
186 mmu_interval_read_begin(struct mmu_interval_notifier *interval_sub) in mmu_interval_read_begin() argument
189 interval_sub->mm->notifier_subscriptions; in mmu_interval_read_begin()
234 seq = READ_ONCE(interval_sub->invalidate_seq); in mmu_interval_read_begin()
271 struct mmu_interval_notifier *interval_sub; in mn_itree_release() local
275 for (interval_sub = in mn_itree_release()
277 interval_sub; in mn_itree_release()
278 interval_sub = mn_itree_inv_next(interval_sub, &range)) { in mn_itree_release()
279 ret = interval_sub->ops->invalidate(interval_sub, &range, in mn_itree_release()
447 struct mmu_interval_notifier *interval_sub; in mn_itree_invalidate() local
450 for (interval_sub = in mn_itree_invalidate()
452 interval_sub; in mn_itree_invalidate()
453 interval_sub = mn_itree_inv_next(interval_sub, range)) { in mn_itree_invalidate()
456 ret = interval_sub->ops->invalidate(interval_sub, range, in mn_itree_invalidate()
914 struct mmu_interval_notifier *interval_sub, struct mm_struct *mm, in __mmu_interval_notifier_insert() argument
918 interval_sub->mm = mm; in __mmu_interval_notifier_insert()
919 interval_sub->ops = ops; in __mmu_interval_notifier_insert()
920 RB_CLEAR_NODE(&interval_sub->interval_tree.rb); in __mmu_interval_notifier_insert()
921 interval_sub->interval_tree.start = start; in __mmu_interval_notifier_insert()
928 &interval_sub->interval_tree.last)) in __mmu_interval_notifier_insert()
954 hlist_add_head(&interval_sub->deferred_item, in __mmu_interval_notifier_insert()
958 interval_tree_insert(&interval_sub->interval_tree, in __mmu_interval_notifier_insert()
961 interval_sub->invalidate_seq = subscriptions->invalidate_seq; in __mmu_interval_notifier_insert()
970 interval_sub->invalidate_seq = in __mmu_interval_notifier_insert()
972 interval_tree_insert(&interval_sub->interval_tree, in __mmu_interval_notifier_insert()
995 int mmu_interval_notifier_insert(struct mmu_interval_notifier *interval_sub, in mmu_interval_notifier_insert() argument
1012 return __mmu_interval_notifier_insert(interval_sub, mm, subscriptions, in mmu_interval_notifier_insert()
1018 struct mmu_interval_notifier *interval_sub, struct mm_struct *mm, in mmu_interval_notifier_insert_locked() argument
1034 return __mmu_interval_notifier_insert(interval_sub, mm, subscriptions, in mmu_interval_notifier_insert_locked()
1061 void mmu_interval_notifier_remove(struct mmu_interval_notifier *interval_sub) in mmu_interval_notifier_remove() argument
1063 struct mm_struct *mm = interval_sub->mm; in mmu_interval_notifier_remove()
1076 if (RB_EMPTY_NODE(&interval_sub->interval_tree.rb)) { in mmu_interval_notifier_remove()
1077 hlist_del(&interval_sub->deferred_item); in mmu_interval_notifier_remove()
1079 hlist_add_head(&interval_sub->deferred_item, in mmu_interval_notifier_remove()
1084 WARN_ON(RB_EMPTY_NODE(&interval_sub->interval_tree.rb)); in mmu_interval_notifier_remove()
1085 interval_tree_remove(&interval_sub->interval_tree, in mmu_interval_notifier_remove()