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()
898 struct mmu_interval_notifier *interval_sub, struct mm_struct *mm, in __mmu_interval_notifier_insert() argument
902 interval_sub->mm = mm; in __mmu_interval_notifier_insert()
903 interval_sub->ops = ops; in __mmu_interval_notifier_insert()
904 RB_CLEAR_NODE(&interval_sub->interval_tree.rb); in __mmu_interval_notifier_insert()
905 interval_sub->interval_tree.start = start; in __mmu_interval_notifier_insert()
912 &interval_sub->interval_tree.last)) in __mmu_interval_notifier_insert()
938 hlist_add_head(&interval_sub->deferred_item, in __mmu_interval_notifier_insert()
942 interval_tree_insert(&interval_sub->interval_tree, in __mmu_interval_notifier_insert()
945 interval_sub->invalidate_seq = subscriptions->invalidate_seq; in __mmu_interval_notifier_insert()
954 interval_sub->invalidate_seq = in __mmu_interval_notifier_insert()
956 interval_tree_insert(&interval_sub->interval_tree, in __mmu_interval_notifier_insert()
979 int mmu_interval_notifier_insert(struct mmu_interval_notifier *interval_sub, in mmu_interval_notifier_insert() argument
996 return __mmu_interval_notifier_insert(interval_sub, mm, subscriptions, in mmu_interval_notifier_insert()
1002 struct mmu_interval_notifier *interval_sub, struct mm_struct *mm, in mmu_interval_notifier_insert_locked() argument
1018 return __mmu_interval_notifier_insert(interval_sub, mm, subscriptions, in mmu_interval_notifier_insert_locked()
1033 void mmu_interval_notifier_remove(struct mmu_interval_notifier *interval_sub) in mmu_interval_notifier_remove() argument
1035 struct mm_struct *mm = interval_sub->mm; in mmu_interval_notifier_remove()
1048 if (RB_EMPTY_NODE(&interval_sub->interval_tree.rb)) { in mmu_interval_notifier_remove()
1049 hlist_del(&interval_sub->deferred_item); in mmu_interval_notifier_remove()
1051 hlist_add_head(&interval_sub->deferred_item, in mmu_interval_notifier_remove()
1056 WARN_ON(RB_EMPTY_NODE(&interval_sub->interval_tree.rb)); in mmu_interval_notifier_remove()
1057 interval_tree_remove(&interval_sub->interval_tree, in mmu_interval_notifier_remove()