Lines Matching refs:interval_sub
123 mn_itree_inv_next(struct mmu_interval_notifier *interval_sub, in mn_itree_inv_next() argument
128 node = interval_tree_iter_next(&interval_sub->interval_tree, in mn_itree_inv_next()
137 struct mmu_interval_notifier *interval_sub; in mn_itree_inv_end() local
156 hlist_for_each_entry_safe(interval_sub, next, in mn_itree_inv_end()
159 if (RB_EMPTY_NODE(&interval_sub->interval_tree.rb)) in mn_itree_inv_end()
160 interval_tree_insert(&interval_sub->interval_tree, in mn_itree_inv_end()
163 interval_tree_remove(&interval_sub->interval_tree, in mn_itree_inv_end()
165 hlist_del(&interval_sub->deferred_item); in mn_itree_inv_end()
192 mmu_interval_read_begin(struct mmu_interval_notifier *interval_sub) in mmu_interval_read_begin() argument
195 interval_sub->mm->notifier_subscriptions; in mmu_interval_read_begin()
240 seq = READ_ONCE(interval_sub->invalidate_seq); in mmu_interval_read_begin()
277 struct mmu_interval_notifier *interval_sub; in mn_itree_release() local
281 for (interval_sub = in mn_itree_release()
283 interval_sub; in mn_itree_release()
284 interval_sub = mn_itree_inv_next(interval_sub, &range)) { in mn_itree_release()
285 ret = interval_sub->ops->invalidate(interval_sub, &range, in mn_itree_release()
453 struct mmu_interval_notifier *interval_sub; in mn_itree_invalidate() local
456 for (interval_sub = in mn_itree_invalidate()
458 interval_sub; in mn_itree_invalidate()
459 interval_sub = mn_itree_inv_next(interval_sub, range)) { in mn_itree_invalidate()
462 ret = interval_sub->ops->invalidate(interval_sub, range, in mn_itree_invalidate()
959 struct mmu_interval_notifier *interval_sub, struct mm_struct *mm, in __mmu_interval_notifier_insert() argument
963 interval_sub->mm = mm; in __mmu_interval_notifier_insert()
964 interval_sub->ops = ops; in __mmu_interval_notifier_insert()
965 RB_CLEAR_NODE(&interval_sub->interval_tree.rb); in __mmu_interval_notifier_insert()
966 interval_sub->interval_tree.start = start; in __mmu_interval_notifier_insert()
973 &interval_sub->interval_tree.last)) in __mmu_interval_notifier_insert()
999 hlist_add_head(&interval_sub->deferred_item, in __mmu_interval_notifier_insert()
1003 interval_tree_insert(&interval_sub->interval_tree, in __mmu_interval_notifier_insert()
1006 interval_sub->invalidate_seq = subscriptions->invalidate_seq; in __mmu_interval_notifier_insert()
1015 interval_sub->invalidate_seq = in __mmu_interval_notifier_insert()
1017 interval_tree_insert(&interval_sub->interval_tree, in __mmu_interval_notifier_insert()
1040 int mmu_interval_notifier_insert(struct mmu_interval_notifier *interval_sub, in mmu_interval_notifier_insert() argument
1057 return __mmu_interval_notifier_insert(interval_sub, mm, subscriptions, in mmu_interval_notifier_insert()
1063 struct mmu_interval_notifier *interval_sub, struct mm_struct *mm, in mmu_interval_notifier_insert_locked() argument
1079 return __mmu_interval_notifier_insert(interval_sub, mm, subscriptions, in mmu_interval_notifier_insert_locked()
1106 void mmu_interval_notifier_remove(struct mmu_interval_notifier *interval_sub) in mmu_interval_notifier_remove() argument
1108 struct mm_struct *mm = interval_sub->mm; in mmu_interval_notifier_remove()
1121 if (RB_EMPTY_NODE(&interval_sub->interval_tree.rb)) { in mmu_interval_notifier_remove()
1122 hlist_del(&interval_sub->deferred_item); in mmu_interval_notifier_remove()
1124 hlist_add_head(&interval_sub->deferred_item, in mmu_interval_notifier_remove()
1129 WARN_ON(RB_EMPTY_NODE(&interval_sub->interval_tree.rb)); in mmu_interval_notifier_remove()
1130 interval_tree_remove(&interval_sub->interval_tree, in mmu_interval_notifier_remove()