Lines Matching refs:mn

58 	struct mmu_notifier *mn;  in __mmu_notifier_release()  local
66 hlist_for_each_entry_rcu(mn, &mm->mmu_notifier_mm->list, hlist) in __mmu_notifier_release()
73 if (mn->ops->release) in __mmu_notifier_release()
74 mn->ops->release(mn, mm); in __mmu_notifier_release()
78 mn = hlist_entry(mm->mmu_notifier_mm->list.first, in __mmu_notifier_release()
87 hlist_del_init_rcu(&mn->hlist); in __mmu_notifier_release()
113 struct mmu_notifier *mn; in __mmu_notifier_clear_flush_young() local
117 hlist_for_each_entry_rcu(mn, &mm->mmu_notifier_mm->list, hlist) { in __mmu_notifier_clear_flush_young()
118 if (mn->ops->clear_flush_young) in __mmu_notifier_clear_flush_young()
119 young |= mn->ops->clear_flush_young(mn, mm, start, end); in __mmu_notifier_clear_flush_young()
129 struct mmu_notifier *mn; in __mmu_notifier_test_young() local
133 hlist_for_each_entry_rcu(mn, &mm->mmu_notifier_mm->list, hlist) { in __mmu_notifier_test_young()
134 if (mn->ops->test_young) { in __mmu_notifier_test_young()
135 young = mn->ops->test_young(mn, mm, address); in __mmu_notifier_test_young()
148 struct mmu_notifier *mn; in __mmu_notifier_change_pte() local
152 hlist_for_each_entry_rcu(mn, &mm->mmu_notifier_mm->list, hlist) { in __mmu_notifier_change_pte()
153 if (mn->ops->change_pte) in __mmu_notifier_change_pte()
154 mn->ops->change_pte(mn, mm, address, pte); in __mmu_notifier_change_pte()
162 struct mmu_notifier *mn; in __mmu_notifier_invalidate_page() local
166 hlist_for_each_entry_rcu(mn, &mm->mmu_notifier_mm->list, hlist) { in __mmu_notifier_invalidate_page()
167 if (mn->ops->invalidate_page) in __mmu_notifier_invalidate_page()
168 mn->ops->invalidate_page(mn, mm, address); in __mmu_notifier_invalidate_page()
176 struct mmu_notifier *mn; in __mmu_notifier_invalidate_range_start() local
180 hlist_for_each_entry_rcu(mn, &mm->mmu_notifier_mm->list, hlist) { in __mmu_notifier_invalidate_range_start()
181 if (mn->ops->invalidate_range_start) in __mmu_notifier_invalidate_range_start()
182 mn->ops->invalidate_range_start(mn, mm, start, end); in __mmu_notifier_invalidate_range_start()
191 struct mmu_notifier *mn; in __mmu_notifier_invalidate_range_end() local
195 hlist_for_each_entry_rcu(mn, &mm->mmu_notifier_mm->list, hlist) { in __mmu_notifier_invalidate_range_end()
204 if (mn->ops->invalidate_range) in __mmu_notifier_invalidate_range_end()
205 mn->ops->invalidate_range(mn, mm, start, end); in __mmu_notifier_invalidate_range_end()
206 if (mn->ops->invalidate_range_end) in __mmu_notifier_invalidate_range_end()
207 mn->ops->invalidate_range_end(mn, mm, start, end); in __mmu_notifier_invalidate_range_end()
216 struct mmu_notifier *mn; in __mmu_notifier_invalidate_range() local
220 hlist_for_each_entry_rcu(mn, &mm->mmu_notifier_mm->list, hlist) { in __mmu_notifier_invalidate_range()
221 if (mn->ops->invalidate_range) in __mmu_notifier_invalidate_range()
222 mn->ops->invalidate_range(mn, mm, start, end); in __mmu_notifier_invalidate_range()
228 static int do_mmu_notifier_register(struct mmu_notifier *mn, in do_mmu_notifier_register() argument
272 hlist_add_head(&mn->hlist, &mm->mmu_notifier_mm->list); in do_mmu_notifier_register()
298 int mmu_notifier_register(struct mmu_notifier *mn, struct mm_struct *mm) in mmu_notifier_register() argument
300 return do_mmu_notifier_register(mn, mm, 1); in mmu_notifier_register()
308 int __mmu_notifier_register(struct mmu_notifier *mn, struct mm_struct *mm) in __mmu_notifier_register() argument
310 return do_mmu_notifier_register(mn, mm, 0); in __mmu_notifier_register()
332 void mmu_notifier_unregister(struct mmu_notifier *mn, struct mm_struct *mm) in mmu_notifier_unregister() argument
336 if (!hlist_unhashed(&mn->hlist)) { in mmu_notifier_unregister()
348 if (mn->ops->release) in mmu_notifier_unregister()
349 mn->ops->release(mn, mm); in mmu_notifier_unregister()
357 hlist_del_init_rcu(&mn->hlist); in mmu_notifier_unregister()
376 void mmu_notifier_unregister_no_release(struct mmu_notifier *mn, in mmu_notifier_unregister_no_release() argument
384 hlist_del_init_rcu(&mn->hlist); in mmu_notifier_unregister_no_release()