Defined in 2 files as a function:
- include/linux/mmu_notifier.h, line 313 (as a function)
- include/linux/mmu_notifier.h, line 584 (as a function)
Referenced in 2 files:
Smatch caller information:
kernel/fork.c mmu_notifier_subscriptions_destroy() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-7138969414219841535,7138969414219841537-ptr_max |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| CAPPED_DATA | 0 | mm | 1 |
| CAPPED_DATA | 0 | mm->pgd | 1 |
| DATA_SOURCE | 0 | mm | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &context->db_page_mutex | ||
| HALF_LOCKED2 | &dev->domain_lock | ||
| HALF_LOCKED2 | &ictx->ioas_creation_lock | ||
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | &xdna->client_lock | ||
| HALF_LOCKED2 | &xdna->dev_lock | ||
| HALF_LOCKED2 | rcu_read | ||
| HALF_LOCKED2 | 0 | &mm->mmap_lock |
mm/madvise.c mmu_notifier_invalidate_range_end() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &madv_behavior->mm->mmap_lock | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/madvise.c mmu_notifier_invalidate_range_start() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &madv_behavior->mm->mmap_lock | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/huge_memory.c mmu_notifier_invalidate_range_end() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &ctx->map_changing_lock |
mm/huge_memory.c mmu_notifier_invalidate_range_start() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &ctx->map_changing_lock |
arch/x86/mm/tlb.c mmu_notifier_arch_invalidate_secondary_tlbs() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| BUF_SIZE | 0 | mm | (-1),1-s32max |
| BUF_SIZE | 0 | mm | (-1),1-s32max |
| DATA_SOURCE | 0 | mm | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| USER_DATA | 0 | mm->context.ldt->nr_entries | 1-8192[c] |
| NO_OVERFLOW_SIMPLE | 0 | mm->arg_start | |
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &ctx->map_changing_lock | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &vma->vm_file->f_mapping->i_mmap_rwsem | ||
| HALF_LOCKED2 | flags | ||
| HALF_LOCKED2 | old_ptl | ||
| HALF_LOCKED2 | ptl | ||
| HALF_LOCKED2 | rcu_read | ||
| HALF_LOCKED2 | vmf->ptl | ||
| HALF_LOCKED2 | 0 | &mm->context.ldt_usr_sem | |
| HALF_LOCKED2 | 0 | &mm->mmap_lock |
mm/mmap.c mmu_notifier_release() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| PARAM_VALUE | 0 | mm->notifier_subscriptions | 0 |
| CAPPED_DATA | 0 | mm | 1 |
| CAPPED_DATA | 0 | mm->uprobes_state.xol_area | 1 |
| DATA_SOURCE | 0 | mm | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &pool->lock | ||
| HALF_LOCKED2 | 0 | &mm->mmap_lock |
mm/userfaultfd.c mmu_notifier_invalidate_range_end() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &ctx->map_changing_lock | ||
| TYPE_LOCK | (struct userfaultfd_ctx)->map_changing_lock |
mm/userfaultfd.c mmu_notifier_invalidate_range_start() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &ctx->map_changing_lock | ||
| TYPE_LOCK | (struct userfaultfd_ctx)->map_changing_lock |
mm/damon/vaddr.c mmu_notifier_clear_young() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| DATA_SOURCE | 0 | mm | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &m->lock | ||
| HALF_LOCKED2 | &mapping->i_mmap_rwsem |
mm/damon/vaddr.c mmu_notifier_test_young() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| DATA_SOURCE | 0 | mm | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | ptl |
fs/proc/task_mmu.c mmu_notifier_invalidate_range_end() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
fs/proc/task_mmu.c mmu_notifier_invalidate_range_start() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/rmap.c mmu_notifier_arch_invalidate_secondary_tlbs() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| DATA_SOURCE | 0 | mm | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &anon_vma->root->rwsem | ||
| HALF_LOCKED2 | &folio->private->lock |
mm/rmap.c mmu_notifier_clear_flush_young() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| DATA_SOURCE | 0 | mm | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &anon_vma->root->rwsem | ||
| HALF_LOCKED2 | &folio->private->lock |
mm/rmap.c mmu_notifier_invalidate_range_end() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock |
mm/rmap.c mmu_notifier_invalidate_range_start() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock |
mm/mprotect.c mmu_notifier_invalidate_range_end() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &dst_mm->mmap_lock | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | _T->lock |
mm/mprotect.c mmu_notifier_invalidate_range_start() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &dst_mm->mmap_lock | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | _T->lock |
mm/hugetlb.c mmu_notifier_invalidate_range_end() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mapping->i_mmap_rwsem | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &oldmm->mmap_lock |
mm/hugetlb.c mmu_notifier_invalidate_range_start() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mapping->i_mmap_rwsem | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &oldmm->mmap_lock |
mm/mremap.c mmu_notifier_invalidate_range_end() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &tsk->signal->exec_update_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/mremap.c mmu_notifier_invalidate_range_start() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &tsk->signal->exec_update_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/ksm.c mmu_notifier_invalidate_range_end() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | global &ksm_thread_mutex | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/ksm.c mmu_notifier_invalidate_range_start() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| LOCK2 | global &ksm_thread_mutex | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/migrate_device.c mmu_notifier_invalidate_range_end() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
mm/migrate_device.c mmu_notifier_invalidate_range_start() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
mm/vmscan.c get_pmd_pfn() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | ptl |
mm/vmscan.c get_pte_pfn() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | ptl | ||
| HALF_LOCKED2 | rcu_read |
mm/vmscan.c mmu_notifier_clear_young() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | mm | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | ptl |
mm/vmscan.c walk_pmd_range() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock |
mm/vmscan.c walk_pmd_range_locked() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| BUF_SIZE | 0 | mm | s32min-(-1),1-s32max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| LOCK2 | ptl | ||
| HALF_LOCKED2 | &mm->mmap_lock |
mm/memory.c mmu_notifier_invalidate_range_end() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &oldmm->mmap_lock |
mm/memory.c mmu_notifier_invalidate_range_start() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &oldmm->mmap_lock |
mm/memory.c mmu_notifier_invalidate_range_start_nonblock() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| UNITS | 0 | mm | unit_byte |
| LOCK2 | &mm->mmap_lock | ||
| TYPE_LOCK | (struct mm_struct)->mmap_lock |
mm/damon/ops-common.c mmu_notifier_clear_young() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | mm | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | ptl |
mm/damon/ops-common.c mmu_notifier_test_young() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | mm | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &anon_vma->root->rwsem | ||
| HALF_LOCKED2 | &folio->private->lock |
drivers/iommu/iommu-sva.c mmu_notifier_arch_invalidate_secondary_tlbs() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | mm | $0 |
| UNITS | 0 | mm | unit_byte |
| LOCK2 | _T->lock | ||
| HALF_LOCKED2 | &pool->lock |
kernel/events/uprobes.c mmu_notifier_invalidate_range_end() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &uprobe->register_rwsem |
kernel/events/uprobes.c mmu_notifier_invalidate_range_start() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &uprobe->register_rwsem |
mm/mapping_dirty_helpers.c mmu_notifier_invalidate_range_end() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &m->lock | ||
| HALF_LOCKED2 | &mapping->i_mmap_rwsem |
mm/mapping_dirty_helpers.c mmu_notifier_invalidate_range_start() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &m->lock | ||
| HALF_LOCKED2 | &mapping->i_mmap_rwsem |
mm/khugepaged.c mmu_notifier_invalidate_range_end() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mapping->i_mmap_rwsem | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &vma->anon_vma->root->rwsem |
mm/khugepaged.c mmu_notifier_invalidate_range_start() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| PARAM_VALUE | 0 | mm | 4096-ptr_max |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mapping->i_mmap_rwsem | ||
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &vma->anon_vma->root->rwsem |
mm/khugepaged.c mmu_notifier_test_young() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | mm | $0 |
| PREEMPT_ADD | |||
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &mm->mmap_lock | ||
| HALF_LOCKED2 | &vma->anon_vma->root->rwsem | ||
| HALF_LOCKED2 | pte_ptl | ||
| HALF_LOCKED2 | ptl |
mm/page_idle.c mmu_notifier_clear_young() -> mm_has_notifiers()
| Type | Parameter | Key | Value |
|---|---|---|---|
| DATA_SOURCE | 0 | mm | $0 |
| RX_PATH | |||
| TASK_NOT_RUNNING | |||
| UNITS | 0 | mm | unit_byte |
| HALF_LOCKED2 | &anon_vma->root->rwsem | ||
| HALF_LOCKED2 | &folio->private->lock |