Lines Matching full:mm

40  * that the mm refcount is zero and the range is no longer accessible.
66 * Called either by mmu_notifier_unregister or when the mm is
69 * methods (the ones invoked outside the mm context) and it
74 * tsk->mm == mm exits.
81 * last thread of this mm quits, you've also to be sure that
89 struct mm_struct *mm);
101 struct mm_struct *mm,
111 struct mm_struct *mm,
122 struct mm_struct *mm,
130 struct mm_struct *mm,
208 struct mm_struct *mm,
215 * notifier for use with the mm.
222 struct mmu_notifier *(*alloc_notifier)(struct mm_struct *mm);
240 struct mm_struct *mm; member
260 struct mm_struct *mm; member
272 struct mm_struct *mm; member
280 static inline int mm_has_notifiers(struct mm_struct *mm) in mm_has_notifiers() argument
282 return unlikely(mm->notifier_subscriptions); in mm_has_notifiers()
286 struct mm_struct *mm);
288 mmu_notifier_get(const struct mmu_notifier_ops *ops, struct mm_struct *mm) in mmu_notifier_get() argument
292 mmap_write_lock(mm); in mmu_notifier_get()
293 ret = mmu_notifier_get_locked(ops, mm); in mmu_notifier_get()
294 mmap_write_unlock(mm); in mmu_notifier_get()
301 struct mm_struct *mm);
303 struct mm_struct *mm);
305 struct mm_struct *mm);
310 struct mm_struct *mm, unsigned long start,
314 struct mmu_interval_notifier *interval_sub, struct mm_struct *mm,
385 extern void __mmu_notifier_subscriptions_destroy(struct mm_struct *mm);
386 extern void __mmu_notifier_release(struct mm_struct *mm);
387 extern int __mmu_notifier_clear_flush_young(struct mm_struct *mm,
390 extern int __mmu_notifier_clear_young(struct mm_struct *mm,
393 extern int __mmu_notifier_test_young(struct mm_struct *mm,
395 extern void __mmu_notifier_change_pte(struct mm_struct *mm,
399 extern void __mmu_notifier_arch_invalidate_secondary_tlbs(struct mm_struct *mm,
410 static inline void mmu_notifier_release(struct mm_struct *mm) in mmu_notifier_release() argument
412 if (mm_has_notifiers(mm)) in mmu_notifier_release()
413 __mmu_notifier_release(mm); in mmu_notifier_release()
416 static inline int mmu_notifier_clear_flush_young(struct mm_struct *mm, in mmu_notifier_clear_flush_young() argument
420 if (mm_has_notifiers(mm)) in mmu_notifier_clear_flush_young()
421 return __mmu_notifier_clear_flush_young(mm, start, end); in mmu_notifier_clear_flush_young()
425 static inline int mmu_notifier_clear_young(struct mm_struct *mm, in mmu_notifier_clear_young() argument
429 if (mm_has_notifiers(mm)) in mmu_notifier_clear_young()
430 return __mmu_notifier_clear_young(mm, start, end); in mmu_notifier_clear_young()
434 static inline int mmu_notifier_test_young(struct mm_struct *mm, in mmu_notifier_test_young() argument
437 if (mm_has_notifiers(mm)) in mmu_notifier_test_young()
438 return __mmu_notifier_test_young(mm, address); in mmu_notifier_test_young()
442 static inline void mmu_notifier_change_pte(struct mm_struct *mm, in mmu_notifier_change_pte() argument
445 if (mm_has_notifiers(mm)) in mmu_notifier_change_pte()
446 __mmu_notifier_change_pte(mm, address, pte); in mmu_notifier_change_pte()
455 if (mm_has_notifiers(range->mm)) { in mmu_notifier_invalidate_range_start()
475 if (mm_has_notifiers(range->mm)) { in mmu_notifier_invalidate_range_start_nonblock()
489 if (mm_has_notifiers(range->mm)) in mmu_notifier_invalidate_range_end()
493 static inline void mmu_notifier_arch_invalidate_secondary_tlbs(struct mm_struct *mm, in mmu_notifier_arch_invalidate_secondary_tlbs() argument
496 if (mm_has_notifiers(mm)) in mmu_notifier_arch_invalidate_secondary_tlbs()
497 __mmu_notifier_arch_invalidate_secondary_tlbs(mm, start, end); in mmu_notifier_arch_invalidate_secondary_tlbs()
500 static inline void mmu_notifier_subscriptions_init(struct mm_struct *mm) in mmu_notifier_subscriptions_init() argument
502 mm->notifier_subscriptions = NULL; in mmu_notifier_subscriptions_init()
505 static inline void mmu_notifier_subscriptions_destroy(struct mm_struct *mm) in mmu_notifier_subscriptions_destroy() argument
507 if (mm_has_notifiers(mm)) in mmu_notifier_subscriptions_destroy()
508 __mmu_notifier_subscriptions_destroy(mm); in mmu_notifier_subscriptions_destroy()
515 struct mm_struct *mm, in mmu_notifier_range_init() argument
520 range->mm = mm; in mmu_notifier_range_init()
529 struct mm_struct *mm, unsigned long start, in mmu_notifier_range_init_owner() argument
532 mmu_notifier_range_init(range, event, flags, mm, start, end); in mmu_notifier_range_init_owner()
619 #define mmu_notifier_range_init(range,event,flags,mm,start,end) \ argument
621 #define mmu_notifier_range_init_owner(range, event, flags, mm, start, \ argument
631 static inline int mm_has_notifiers(struct mm_struct *mm) in mm_has_notifiers() argument
636 static inline void mmu_notifier_release(struct mm_struct *mm) in mmu_notifier_release() argument
640 static inline int mmu_notifier_clear_flush_young(struct mm_struct *mm, in mmu_notifier_clear_flush_young() argument
647 static inline int mmu_notifier_test_young(struct mm_struct *mm, in mmu_notifier_test_young() argument
653 static inline void mmu_notifier_change_pte(struct mm_struct *mm, in mmu_notifier_change_pte() argument
674 static inline void mmu_notifier_arch_invalidate_secondary_tlbs(struct mm_struct *mm, in mmu_notifier_arch_invalidate_secondary_tlbs() argument
679 static inline void mmu_notifier_subscriptions_init(struct mm_struct *mm) in mmu_notifier_subscriptions_init() argument
683 static inline void mmu_notifier_subscriptions_destroy(struct mm_struct *mm) in mmu_notifier_subscriptions_destroy() argument