Lines Matching refs:interval_sub
119 mn_itree_inv_next(struct mmu_interval_notifier *interval_sub, in mn_itree_inv_next() argument
124 node = interval_tree_iter_next(&interval_sub->interval_tree, in mn_itree_inv_next()
133 struct mmu_interval_notifier *interval_sub; in mn_itree_inv_end() local
152 hlist_for_each_entry_safe(interval_sub, next, in mn_itree_inv_end()
155 if (RB_EMPTY_NODE(&interval_sub->interval_tree.rb)) in mn_itree_inv_end()
156 interval_tree_insert(&interval_sub->interval_tree, in mn_itree_inv_end()
159 interval_tree_remove(&interval_sub->interval_tree, in mn_itree_inv_end()
161 hlist_del(&interval_sub->deferred_item); in mn_itree_inv_end()
188 mmu_interval_read_begin(struct mmu_interval_notifier *interval_sub) in mmu_interval_read_begin() argument
191 interval_sub->mm->notifier_subscriptions; in mmu_interval_read_begin()
236 seq = READ_ONCE(interval_sub->invalidate_seq); in mmu_interval_read_begin()
273 struct mmu_interval_notifier *interval_sub; in mn_itree_release() local
277 for (interval_sub = in mn_itree_release()
279 interval_sub; in mn_itree_release()
280 interval_sub = mn_itree_inv_next(interval_sub, &range)) { in mn_itree_release()
281 ret = interval_sub->ops->invalidate(interval_sub, &range, in mn_itree_release()
432 struct mmu_interval_notifier *interval_sub; in mn_itree_invalidate() local
435 for (interval_sub = in mn_itree_invalidate()
437 interval_sub; in mn_itree_invalidate()
438 interval_sub = mn_itree_inv_next(interval_sub, range)) { in mn_itree_invalidate()
441 ret = interval_sub->ops->invalidate(interval_sub, range, in mn_itree_invalidate()
891 struct mmu_interval_notifier *interval_sub, struct mm_struct *mm, in __mmu_interval_notifier_insert() argument
895 interval_sub->mm = mm; in __mmu_interval_notifier_insert()
896 interval_sub->ops = ops; in __mmu_interval_notifier_insert()
897 RB_CLEAR_NODE(&interval_sub->interval_tree.rb); in __mmu_interval_notifier_insert()
898 interval_sub->interval_tree.start = start; in __mmu_interval_notifier_insert()
905 &interval_sub->interval_tree.last)) in __mmu_interval_notifier_insert()
931 hlist_add_head(&interval_sub->deferred_item, in __mmu_interval_notifier_insert()
935 interval_tree_insert(&interval_sub->interval_tree, in __mmu_interval_notifier_insert()
938 interval_sub->invalidate_seq = subscriptions->invalidate_seq; in __mmu_interval_notifier_insert()
947 interval_sub->invalidate_seq = in __mmu_interval_notifier_insert()
949 interval_tree_insert(&interval_sub->interval_tree, in __mmu_interval_notifier_insert()
972 int mmu_interval_notifier_insert(struct mmu_interval_notifier *interval_sub, in mmu_interval_notifier_insert() argument
989 return __mmu_interval_notifier_insert(interval_sub, mm, subscriptions, in mmu_interval_notifier_insert()
995 struct mmu_interval_notifier *interval_sub, struct mm_struct *mm, in mmu_interval_notifier_insert_locked() argument
1011 return __mmu_interval_notifier_insert(interval_sub, mm, subscriptions, in mmu_interval_notifier_insert_locked()
1038 void mmu_interval_notifier_remove(struct mmu_interval_notifier *interval_sub) in mmu_interval_notifier_remove() argument
1040 struct mm_struct *mm = interval_sub->mm; in mmu_interval_notifier_remove()
1053 if (RB_EMPTY_NODE(&interval_sub->interval_tree.rb)) { in mmu_interval_notifier_remove()
1054 hlist_del(&interval_sub->deferred_item); in mmu_interval_notifier_remove()
1056 hlist_add_head(&interval_sub->deferred_item, in mmu_interval_notifier_remove()
1061 WARN_ON(RB_EMPTY_NODE(&interval_sub->interval_tree.rb)); in mmu_interval_notifier_remove()
1062 interval_tree_remove(&interval_sub->interval_tree, in mmu_interval_notifier_remove()