Lines Matching refs:interval_sub

117 mn_itree_inv_next(struct mmu_interval_notifier *interval_sub,
122 node = interval_tree_iter_next(&interval_sub->interval_tree,
131 struct mmu_interval_notifier *interval_sub;
150 hlist_for_each_entry_safe(interval_sub, next,
153 if (RB_EMPTY_NODE(&interval_sub->interval_tree.rb))
154 interval_tree_insert(&interval_sub->interval_tree,
157 interval_tree_remove(&interval_sub->interval_tree,
159 hlist_del(&interval_sub->deferred_item);
169 * @interval_sub: The interval subscription
186 mmu_interval_read_begin(struct mmu_interval_notifier *interval_sub)
189 interval_sub->mm->notifier_subscriptions;
204 * seq = READ_ONCE(interval_sub->invalidate_seq);
213 * interval_sub->invalidate_seq = seq
225 * interval_sub->invalidate_seq != seq
234 seq = READ_ONCE(interval_sub->invalidate_seq);
239 * interval_sub->invalidate_seq must always be set to an odd value via
271 struct mmu_interval_notifier *interval_sub;
275 for (interval_sub =
277 interval_sub;
278 interval_sub = mn_itree_inv_next(interval_sub, &range)) {
279 ret = interval_sub->ops->invalidate(interval_sub, &range,
430 struct mmu_interval_notifier *interval_sub;
433 for (interval_sub =
435 interval_sub;
436 interval_sub = mn_itree_inv_next(interval_sub, range)) {
439 ret = interval_sub->ops->invalidate(interval_sub, range,
889 struct mmu_interval_notifier *interval_sub, struct mm_struct *mm,
893 interval_sub->mm = mm;
894 interval_sub->ops = ops;
895 RB_CLEAR_NODE(&interval_sub->interval_tree.rb);
896 interval_sub->interval_tree.start = start;
903 &interval_sub->interval_tree.last))
923 * In all cases the value for the interval_sub->invalidate_seq should be
929 hlist_add_head(&interval_sub->deferred_item,
933 interval_tree_insert(&interval_sub->interval_tree,
936 interval_sub->invalidate_seq = subscriptions->invalidate_seq;
945 interval_sub->invalidate_seq =
947 interval_tree_insert(&interval_sub->interval_tree,
956 * @interval_sub: Interval subscription to register
970 int mmu_interval_notifier_insert(struct mmu_interval_notifier *interval_sub,
987 return __mmu_interval_notifier_insert(interval_sub, mm, subscriptions,
993 struct mmu_interval_notifier *interval_sub, struct mm_struct *mm,
1009 return __mmu_interval_notifier_insert(interval_sub, mm, subscriptions,
1028 * @interval_sub: Interval subscription to unregister
1036 void mmu_interval_notifier_remove(struct mmu_interval_notifier *interval_sub)
1038 struct mm_struct *mm = interval_sub->mm;
1051 if (RB_EMPTY_NODE(&interval_sub->interval_tree.rb)) {
1052 hlist_del(&interval_sub->deferred_item);
1054 hlist_add_head(&interval_sub->deferred_item,
1059 WARN_ON(RB_EMPTY_NODE(&interval_sub->interval_tree.rb));
1060 interval_tree_remove(&interval_sub->interval_tree,