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,
447 struct mmu_interval_notifier *interval_sub;
450 for (interval_sub =
452 interval_sub;
453 interval_sub = mn_itree_inv_next(interval_sub, range)) {
456 ret = interval_sub->ops->invalidate(interval_sub, range,
906 struct mmu_interval_notifier *interval_sub, struct mm_struct *mm,
910 interval_sub->mm = mm;
911 interval_sub->ops = ops;
912 RB_CLEAR_NODE(&interval_sub->interval_tree.rb);
913 interval_sub->interval_tree.start = start;
920 &interval_sub->interval_tree.last))
940 * In all cases the value for the interval_sub->invalidate_seq should be
946 hlist_add_head(&interval_sub->deferred_item,
950 interval_tree_insert(&interval_sub->interval_tree,
953 interval_sub->invalidate_seq = subscriptions->invalidate_seq;
962 interval_sub->invalidate_seq =
964 interval_tree_insert(&interval_sub->interval_tree,
973 * @interval_sub: Interval subscription to register
987 int mmu_interval_notifier_insert(struct mmu_interval_notifier *interval_sub,
1004 return __mmu_interval_notifier_insert(interval_sub, mm, subscriptions,
1010 struct mmu_interval_notifier *interval_sub, struct mm_struct *mm,
1026 return __mmu_interval_notifier_insert(interval_sub, mm, subscriptions,
1045 * @interval_sub: Interval subscription to unregister
1053 void mmu_interval_notifier_remove(struct mmu_interval_notifier *interval_sub)
1055 struct mm_struct *mm = interval_sub->mm;
1068 if (RB_EMPTY_NODE(&interval_sub->interval_tree.rb)) {
1069 hlist_del(&interval_sub->deferred_item);
1071 hlist_add_head(&interval_sub->deferred_item,
1076 WARN_ON(RB_EMPTY_NODE(&interval_sub->interval_tree.rb));
1077 interval_tree_remove(&interval_sub->interval_tree,