Lines Matching full:range
19 * @MMU_NOTIFY_UNMAP: either munmap() that unmap the range or a mremap() that
20 * move the range
25 * @MMU_NOTIFY_PROTECTION_VMA: update is due to protection change for the range
26 * ie using the vma access permission (vm_page_prot) to update the whole range
31 * pages in the range so to mirror those changes the user must inspect the CPU
40 * that the mm refcount is zero and the range is no longer accessible.
48 * exclusive range the owner will be initialised to the value provided by the
130 * the pages in the range, it has to implement the
136 * establishment of sptes is forbidden in the range passed to
141 * range are still mapped and have at least a refcount of one.
144 * range have been unmapped and the pages have been freed by
176 const struct mmu_notifier_range *range);
178 const struct mmu_notifier_range *range);
239 * range. This function can sleep. Return false only if sleeping
240 * was required but mmu_notifier_range_blockable(range) is false.
244 const struct mmu_notifier_range *range,
331 * mmu_interval_read_retry - End a read side critical section against a VA range
391 mmu_notifier_range_update_to_read_only(const struct mmu_notifier_range *range);
394 mmu_notifier_range_blockable(const struct mmu_notifier_range *range) in mmu_notifier_range_blockable() argument
396 return (range->flags & MMU_NOTIFIER_RANGE_BLOCKABLE); in mmu_notifier_range_blockable()
432 mmu_notifier_invalidate_range_start(struct mmu_notifier_range *range) in mmu_notifier_invalidate_range_start() argument
437 if (mm_has_notifiers(range->mm)) { in mmu_notifier_invalidate_range_start()
438 range->flags |= MMU_NOTIFIER_RANGE_BLOCKABLE; in mmu_notifier_invalidate_range_start()
439 __mmu_notifier_invalidate_range_start(range); in mmu_notifier_invalidate_range_start()
447 * case you're not allowed to modify PTEs in the specified range.
452 mmu_notifier_invalidate_range_start_nonblock(struct mmu_notifier_range *range) in mmu_notifier_invalidate_range_start_nonblock() argument
457 if (mm_has_notifiers(range->mm)) { in mmu_notifier_invalidate_range_start_nonblock()
458 range->flags &= ~MMU_NOTIFIER_RANGE_BLOCKABLE; in mmu_notifier_invalidate_range_start_nonblock()
459 ret = __mmu_notifier_invalidate_range_start(range); in mmu_notifier_invalidate_range_start_nonblock()
466 mmu_notifier_invalidate_range_end(struct mmu_notifier_range *range) in mmu_notifier_invalidate_range_end() argument
468 if (mmu_notifier_range_blockable(range)) in mmu_notifier_invalidate_range_end()
471 if (mm_has_notifiers(range->mm)) in mmu_notifier_invalidate_range_end()
472 __mmu_notifier_invalidate_range_end(range); in mmu_notifier_invalidate_range_end()
494 static inline void mmu_notifier_range_init(struct mmu_notifier_range *range, in mmu_notifier_range_init() argument
501 range->event = event; in mmu_notifier_range_init()
502 range->mm = mm; in mmu_notifier_range_init()
503 range->start = start; in mmu_notifier_range_init()
504 range->end = end; in mmu_notifier_range_init()
505 range->flags = flags; in mmu_notifier_range_init()
509 struct mmu_notifier_range *range, in mmu_notifier_range_init_owner() argument
514 mmu_notifier_range_init(range, event, flags, mm, start, end); in mmu_notifier_range_init_owner()
515 range->owner = owner; in mmu_notifier_range_init_owner()
573 static inline void _mmu_notifier_range_init(struct mmu_notifier_range *range, in _mmu_notifier_range_init() argument
577 range->start = start; in _mmu_notifier_range_init()
578 range->end = end; in _mmu_notifier_range_init()
581 #define mmu_notifier_range_init(range,event,flags,mm,start,end) \ argument
582 _mmu_notifier_range_init(range, start, end)
583 #define mmu_notifier_range_init_owner(range, event, flags, mm, start, \ argument
585 _mmu_notifier_range_init(range, start, end)
588 mmu_notifier_range_blockable(const struct mmu_notifier_range *range) in mmu_notifier_range_blockable() argument
623 mmu_notifier_invalidate_range_start(struct mmu_notifier_range *range) in mmu_notifier_invalidate_range_start() argument
628 mmu_notifier_invalidate_range_start_nonblock(struct mmu_notifier_range *range) in mmu_notifier_invalidate_range_start_nonblock() argument
634 void mmu_notifier_invalidate_range_end(struct mmu_notifier_range *range) in mmu_notifier_invalidate_range_end() argument