Defined in 2 files as a function:

Referenced in 14 files:

Smatch caller information:

drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c amdgpu_hmm_invalidate_gfx() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
CAPPED_DATA 0 range->start 1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max[c]
HALF_LOCKED2 &mm->mmap_lock

drivers/gpu/drm/amd/amdgpu/amdgpu_hmm.c amdgpu_hmm_invalidate_hsa() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
CAPPED_DATA 0 range->start 1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max[c]
HALF_LOCKED2 &mm->mmap_lock

mm/madvise.c mmu_notifier_invalidate_range_end() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4398489290989989888
PARAM_VALUE 0 range->flags 0-1
DATA_SOURCE 0 range $0
NOSPEC 0 range->start
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max
HALF_LOCKED2 &madv_behavior->mm->mmap_lock
HALF_LOCKED2 &mm->mmap_lock

mm/huge_memory.c mmu_notifier_invalidate_range_end() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 792617696445898752,2941470463630782464,3635562907455660032,5173728893640794112
PARAM_VALUE 0 range->flags 0-1
DATA_SOURCE 0 range $0
NOSPEC 0 range->start
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 2097152-2149580799[c]
USER_DATA 0 range->start 0-u64max[c]
HALF_LOCKED2 &ctx->map_changing_lock

mm/userfaultfd.c mmu_notifier_invalidate_range_end() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 2867112011749175296
PARAM_VALUE 0 range->flags 0-1
DATA_SOURCE 0 range $0
NOSPEC 0 range->start
USER_DATA 0 range->end 1-9223372039002259454[c]
USER_DATA 0 range->start 0-s32max[c]
NO_OVERFLOW_SIMPLE 0 range->start
LOCK2 &ctx->map_changing_lock
TYPE_LOCK (struct userfaultfd_ctx)->map_changing_lock

drivers/accel/amdxdna/amdxdna_gem.c amdxdna_hmm_invalidate() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
CAPPED_DATA 0 range->start 1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max[c]
HALF_LOCKED2 &mm->mmap_lock

drivers/infiniband/hw/mlx5/odp.c mlx5_ib_invalidate_range() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
CAPPED_DATA 0 range->start 1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max[c]
HALF_LOCKED2 &mm->mmap_lock

lib/test_hmm.c dmirror_interval_invalidate() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
CAPPED_DATA 0 range->start 1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max[c]
HALF_LOCKED2 &mm->mmap_lock

lib/test_hmm.c dmirror_snapshot_invalidate() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
CAPPED_DATA 0 range->start 1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max[c]
HALF_LOCKED2 &mm->mmap_lock

fs/proc/task_mmu.c mmu_notifier_invalidate_range_end() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 5210798382858874880,7625269519327936512
PARAM_VALUE 0 range->flags 0-1
DATA_SOURCE 0 range $0
USER_DATA 0 range->end 4096-u64max[c]
USER_DATA 0 range->start 0-18446744073709551614[c]
LOCK2 &mm->mmap_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

mm/rmap.c mmu_notifier_invalidate_range_end() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 824168844787027968,1813473871858290688,4634392286774272000,5778953103685988352,8368949978201804800
PARAM_VALUE 0 range->flags 0-1
DATA_SOURCE 0 range $0
NOSPEC 0 range->start
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 4096[c]
USER_DATA 0 range->start 0[c]
HALF_LOCKED2 &mm->mmap_lock

drivers/gpu/drm/drm_gpusvm.c drm_gpusvm_notifier_invalidate() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
CAPPED_DATA 0 range->start 1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max[c]
HALF_LOCKED2 &mm->mmap_lock

mm/mprotect.c mmu_notifier_invalidate_range_end() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 8912915932843421696
DATA_SOURCE 0 range $0
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0[c]
USER_DATA 0 range->start 1-u64max[c]
HALF_LOCKED2 &dst_mm->mmap_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 _T->lock

mm/hugetlb.c mmu_notifier_invalidate_range_end() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 1442440342106030080,2350206470835306496,3118013816349769728,7135294135759257600,7156711261230854144,7395660972796018688
PARAM_VALUE 0 range->flags 0-1
DATA_SOURCE 0 range $0
NOSPEC 0 range->start
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-2147483648[c]
USER_DATA 0 range->start 0-u64max
HALF_LOCKED2 &mapping->i_mmap_rwsem
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &oldmm->mmap_lock

mm/mremap.c mmu_notifier_invalidate_range_end() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 3080451775285407744
PARAM_VALUE 0 range->flags 0-1
DATA_SOURCE 0 range $0
USER_DATA 0 range->start 0-u64max
LOCK2 &mm->mmap_lock
HALF_LOCKED2 &tsk->signal->exec_update_lock
TYPE_LOCK (struct mm_struct)->mmap_lock

drivers/gpu/drm/radeon/radeon_mn.c radeon_mn_invalidate() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
CAPPED_DATA 0 range->start 1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max[c]
HALF_LOCKED2 &mm->mmap_lock

mm/ksm.c mmu_notifier_invalidate_range_end() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4441515311950295040,5824036836300570624
PARAM_VALUE 0 range->flags 0-1
DATA_SOURCE 0 range $0
LOCK2 &mm->mmap_lock
LOCK2 global &ksm_thread_mutex
TYPE_LOCK (struct mm_struct)->mmap_lock

drivers/infiniband/sw/rxe/rxe_odp.c rxe_ib_invalidate_range() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
CAPPED_DATA 0 range->start 1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max[c]
HALF_LOCKED2 &mm->mmap_lock

drivers/xen/gntdev.c gntdev_invalidate() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
CAPPED_DATA 0 range->start 1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max[c]
HALF_LOCKED2 &mm->mmap_lock

mm/migrate_device.c mmu_notifier_invalidate_range_end() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 5823594452154339328,8053976726702792704
DATA_SOURCE 0 range $0
NOSPEC 0 range->end
NOSPEC 0 range->start
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 4096-s32max[c]
USER_DATA 0 range->start 0,4096-s32max[c]

mm/memory.c mmu_notifier_invalidate_range_end() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 3148518515219759104,4201167406952042496,5544380132824559616,6585023926949617664,8560766692117700608,8569428529120919552
PARAM_VALUE 0 range->flags 0-1
DATA_SOURCE 0 range $0
NOSPEC 0 range->end
NOSPEC 0 range->start
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u32max[c]
USER_DATA 0 range->start 0-u64max
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &oldmm->mmap_lock

drivers/gpu/drm/xe/xe_userptr.c xe_vma_userptr_invalidate_start() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
CAPPED_DATA 0 range->start 1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max[c]
HALF_LOCKED2 &mm->mmap_lock

mm/mmu_notifier.c mn_hlist_invalidate_end() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max
LOCK2 global &srcu
HALF_LOCKED2 &ctx->map_changing_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 global &ksm_thread_mutex

mm/mmu_notifier.c mn_hlist_invalidate_end() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
CAPPED_DATA 0 range->end 1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max[c]
USER_DATA 0 range->start 0-u64max
LOCK2 global &srcu
HALF_LOCKED2 &ctx->map_changing_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 global &ksm_thread_mutex

mm/mmu_notifier.c mn_hlist_invalidate_range_start() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max
LOCK2 global &srcu
HALF_LOCKED2 &ctx->map_changing_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 global &ksm_thread_mutex

mm/mmu_notifier.c mn_hlist_invalidate_range_start() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max
LOCK2 global &srcu
HALF_LOCKED2 &ctx->map_changing_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 global &ksm_thread_mutex

mm/mmu_notifier.c mn_hlist_invalidate_range_start() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max
LOCK2 global &srcu
HALF_LOCKED2 &ctx->map_changing_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 global &ksm_thread_mutex

mm/mmu_notifier.c mn_hlist_invalidate_range_start() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max
LOCK2 global &srcu
HALF_LOCKED2 &ctx->map_changing_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 global &ksm_thread_mutex

mm/mmu_notifier.c mn_itree_invalidate() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
CAPPED_DATA 0 range->start 1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max[c]
HALF_LOCKED2 &ctx->map_changing_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 global &ksm_thread_mutex

drivers/gpu/drm/nouveau/nouveau_svm.c nouveau_svm_range_invalidate() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
CAPPED_DATA 0 range->start 1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max[c]
HALF_LOCKED2 &mm->mmap_lock

drivers/gpu/drm/nouveau/nouveau_svm.c nouveau_svmm_invalidate_range_start() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max
LOCK2 global &srcu
HALF_LOCKED2 &ctx->map_changing_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 global &ksm_thread_mutex

kernel/events/uprobes.c mmu_notifier_invalidate_range_end() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 7153266549726253056
PARAM_VALUE 0 range->flags 0-1
DATA_SOURCE 0 range $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &uprobe->register_rwsem

mm/mapping_dirty_helpers.c mmu_notifier_invalidate_range_end() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range $0
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &m->lock
HALF_LOCKED2 &mapping->i_mmap_rwsem

arch/x86/kvm/../../../virt/kvm/kvm_main.c kvm_mmu_notifier_invalidate_range_end() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max
LOCK2 global &srcu
HALF_LOCKED2 &ctx->map_changing_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 global &ksm_thread_mutex

arch/x86/kvm/../../../virt/kvm/kvm_main.c kvm_mmu_notifier_invalidate_range_start() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4096-ptr_max
PARAM_VALUE 0 range->flags 0-1
DATA_SOURCE 0 range $1
NOSPEC 0 range->end
NOSPEC 0 range->start
HARD_MAX 0 range->flags 1
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max
USER_DATA 0 range->start 0-u64max
LOCK2 global &srcu
HALF_LOCKED2 &ctx->map_changing_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 global &ksm_thread_mutex

mm/khugepaged.c mmu_notifier_invalidate_range_end() -> mmu_notifier_range_blockable()

Type Parameter Key Value
PARAM_VALUE 0 range 4707669786698776576,7671385110078320640,7948911468560355328
PARAM_VALUE 0 range->flags 0-1
DATA_SOURCE 0 range $0
NOSPEC 0 range->start
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
USER_DATA 0 range->end 0-u64max[c]
USER_DATA 0 range->start 0,2097152-18446744073709551614[c]
HALF_LOCKED2 &mapping->i_mmap_rwsem
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 &vma->anon_vma->root->rwsem