Defined in 1 files as a function:

Referenced in 35 files:

Smatch caller information:

arch/x86/kvm/../../../virt/kvm/async_pf.c async_pf_execute() -> mmget_not_zero()

Type Parameter Key Value
UNITS 0 mm unit_byte
HALF_LOCKED2 &pool->lock

drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c amdgpu_ttm_tt_get_user_pages() -> mmget_not_zero()

Type Parameter Key Value
PARAM_VALUE 0 mm 1-u64max
UNITS 0 mm unit_byte
HALF_LOCKED2 &p->mutex
HALF_LOCKED2 &process_info->lock

mm/userfaultfd.c userfaultfd_continue() -> mmget_not_zero()

Type Parameter Key Value
CAPPED_DATA 0 mm->task_size 1
UNITS 0 mm unit_byte

mm/userfaultfd.c userfaultfd_copy() -> mmget_not_zero()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
CAPPED_DATA 0 mm->task_size 1
UNITS 0 mm unit_byte

mm/userfaultfd.c userfaultfd_move() -> mmget_not_zero()

Type Parameter Key Value
CAPPED_DATA 0 mm 1
CAPPED_DATA 0 mm->task_size 1
UNITS 0 mm unit_byte

mm/userfaultfd.c userfaultfd_poison() -> mmget_not_zero()

Type Parameter Key Value
CAPPED_DATA 0 mm->task_size 1
UNITS 0 mm unit_byte

mm/userfaultfd.c userfaultfd_register() -> mmget_not_zero()

Type Parameter Key Value
CAPPED_DATA 0 mm->task_size 1
UNITS 0 mm unit_byte

mm/userfaultfd.c userfaultfd_release_all() -> mmget_not_zero()

Type Parameter Key Value
DATA_SOURCE 0 mm $0
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte

mm/userfaultfd.c userfaultfd_rwprotect() -> mmget_not_zero()

Type Parameter Key Value
CAPPED_DATA 0 mm->task_size 1
UNITS 0 mm unit_byte

mm/userfaultfd.c userfaultfd_set_mode() -> mmget_not_zero()

Type Parameter Key Value
UNITS 0 mm unit_byte

mm/userfaultfd.c userfaultfd_unregister() -> mmget_not_zero()

Type Parameter Key Value
CAPPED_DATA 0 mm->task_size 1
UNITS 0 mm unit_byte

mm/userfaultfd.c userfaultfd_writeprotect() -> mmget_not_zero()

Type Parameter Key Value
CAPPED_DATA 0 mm->task_size 1
UNITS 0 mm unit_byte

mm/userfaultfd.c userfaultfd_zeropage() -> mmget_not_zero()

Type Parameter Key Value
CAPPED_DATA 0 mm->task_size 1
UNITS 0 mm unit_byte

drivers/usb/gadget/legacy/inode.c ep_user_copy_worker() -> mmget_not_zero()

Type Parameter Key Value
UNITS 0 mm unit_byte
HALF_LOCKED2 &pool->lock

mm/swapfile.c try_to_unuse() -> mmget_not_zero()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
CAPABLE 0 21
PREEMPT_ADD <- disables preempt
LOCK2 global &mmlist_lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c kfd_create_process() -> mmget_not_zero()

Type Parameter Key Value
PARAM_VALUE 0 mm 1-u64max
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte

fs/proc/base.c environ_read() -> mmget_not_zero()

Type Parameter Key Value
PARAM_VALUE 0 mm 4096-ptr_max
BUF_SIZE 0 mm s32min-(-2),1-s32max
BUF_SIZE 0 mm s32min-(-2),1-s32max

fs/proc/base.c mem_rw() -> mmget_not_zero()

Type Parameter Key Value
PARAM_VALUE 0 mm 1-u64max
BUF_SIZE 0 mm s32min-(-2),1-s32max
BUF_SIZE 0 mm s32min-(-2),1-s32max

lib/test_hmm.c dmirror_exclusive() -> mmget_not_zero()

Type Parameter Key Value
UNITS 0 mm unit_byte

lib/test_hmm.c dmirror_fault() -> mmget_not_zero()

Type Parameter Key Value
UNITS 0 mm unit_byte

lib/test_hmm.c dmirror_fault_unlocked() -> mmget_not_zero()

Type Parameter Key Value
UNITS 0 mm unit_byte

lib/test_hmm.c dmirror_migrate_to_device() -> mmget_not_zero()

Type Parameter Key Value
UNITS 0 mm unit_byte

lib/test_hmm.c dmirror_migrate_to_system() -> mmget_not_zero()

Type Parameter Key Value
UNITS 0 mm unit_byte

lib/test_hmm.c dmirror_snapshot() -> mmget_not_zero()

Type Parameter Key Value
UNITS 0 mm unit_byte

fs/proc/task_mmu.c do_procmap_query() -> mmget_not_zero()

Type Parameter Key Value
PARAM_VALUE 0 mm 1-u64max
DATA_SOURCE 0 mm $0

fs/proc/task_mmu.c m_start() -> mmget_not_zero()

Type Parameter Key Value
PARAM_VALUE 0 mm 1-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

fs/proc/task_mmu.c pagemap_read() -> mmget_not_zero()

Type Parameter Key Value
PARAM_VALUE 0 mm 1-u64max
BUF_SIZE 0 mm s32min-(-2),1-s32max
BUF_SIZE 0 mm s32min-(-2),1-s32max

fs/proc/task_mmu.c show_smaps_rollup() -> mmget_not_zero()

Type Parameter Key Value
PARAM_VALUE 0 mm 1-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
TYPE_LOCK (struct seq_file)->lock

drivers/infiniband/core/umem_odp.c ib_umem_odp_alloc_child() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
HALF_LOCKED2 &pool->lock

drivers/infiniband/core/umem_odp.c ib_umem_odp_map_dma_and_lock() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte

drivers/iommu/iommufd/pages.c iopt_pages_rw_access() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
LOCK2 &access->ioas_lock
LOCK2 &iopt->iova_rwsem
TYPE_LOCK (struct io_pagetable)->iova_rwsem
TYPE_LOCK (struct iommufd_access)->ioas_lock

drivers/iommu/iommufd/pages.c iopt_pages_rw_page() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
LOCK2 &access->ioas_lock
LOCK2 &iopt->iova_rwsem
TYPE_LOCK (struct io_pagetable)->iova_rwsem
TYPE_LOCK (struct iommufd_access)->ioas_lock

drivers/iommu/iommufd/pages.c pfn_reader_user_pin() -> mmget_not_zero()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
HALF_LOCKED2 &access->ioas_lock
HALF_LOCKED2 &iopt->iova_rwsem
HALF_LOCKED2 &pages->mutex

drivers/iommu/iommufd/pages.c update_mm_locked_vm() -> mmget_not_zero()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
HALF_LOCKED2 &ictx->ioas_creation_lock
HALF_LOCKED2 &pages->mutex

drivers/gpu/drm/drm_gpusvm.c drm_gpusvm_find_vma_start() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
LOCK2 &vm->lock
TYPE_LOCK (struct xe_vm)->lock

drivers/gpu/drm/drm_gpusvm.c drm_gpusvm_get_pages() -> mmget_not_zero()

Type Parameter Key Value
DATA_SOURCE 0 mm $2
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte

drivers/gpu/drm/drm_gpusvm.c drm_gpusvm_range_evict() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
HALF_LOCKED2 &driver_migrate_lock
HALF_LOCKED2 &vm->lock

drivers/gpu/drm/drm_gpusvm.c drm_gpusvm_range_find_or_insert() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
LOCK2 _T->lock
HALF_LOCKED2 &vm->lock

drivers/gpu/drm/drm_pagemap.c drm_pagemap_evict_to_ram() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 ttm_bo->base.resv

drivers/gpu/drm/drm_pagemap.c drm_pagemap_populate_mm() -> mmget_not_zero()

Type Parameter Key Value
DATA_SOURCE 0 mm $3
UNITS 0 mm unit_byte
LOCK2 &driver_migrate_lock
HALF_LOCKED2 &range->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_migrate.c svm_migrate_to_ram() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
HALF_LOCKED2 &mm->mmap_lock

drivers/infiniband/core/uverbs_main.c uverbs_user_mmap_disassociate() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
LOCK2 &ufile->disassociation_lock
LOCK2 &ufile->umap_lock
HALF_LOCKED2 &ufile->hw_destroy_rwsem
HALF_LOCKED2 &uverbs_dev->lists_mutex
TYPE_LOCK (struct ib_uverbs_file)->disassociation_lock
TYPE_LOCK (struct ib_uverbs_file)->umap_lock

arch/x86/kernel/cpu/sgx/encl.c sgx_encl_cpumask() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
LOCK2 &encl->srcu
HALF_LOCKED2 &encl->lock
HALF_LOCKED2 &encl->lock
TYPE_LOCK (struct sgx_encl)->lock
TYPE_LOCK (struct sgx_encl)->srcu

arch/x86/kernel/cpu/sgx/encl.c sgx_encl_get_mem_cgroup() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
LOCK2 &encl->lock
LOCK2 &encl->srcu
TYPE_LOCK (struct sgx_encl)->lock
TYPE_LOCK (struct sgx_encl)->srcu

arch/x86/kernel/cpu/sgx/encl.c sgx_zap_enclave_ptes() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
LOCK2 &encl->srcu
TYPE_LOCK (struct sgx_encl)->srcu

drivers/android/binder_alloc.c binder_alloc_free_page() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte

drivers/android/binder_alloc.c binder_install_single_page() -> mmget_not_zero()

Type Parameter Key Value
UNITS 0 mm unit_byte

drivers/gpu/drm/xe/xe_vm.c xe_vm_snapshot_capture() -> mmget_not_zero()

Type Parameter Key Value
UNITS 0 mm unit_byte
LOCK2 &coredump->lock
LOCK2 &pool->lock
LOCK2 &vm->snap_mutex
TYPE_LOCK (struct xe_devcoredump)->lock
TYPE_LOCK (struct xe_vm)->snap_mutex

drivers/gpu/drm/xe/xe_sync.c user_fence_worker() -> mmget_not_zero()

Type Parameter Key Value
UNITS 0 mm unit_byte
HALF_LOCKED2 &pool->lock

arch/x86/kernel/cpu/sgx/main.c sgx_reclaimer_age() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
LOCK2 &encl->srcu
TYPE_LOCK (struct sgx_encl)->srcu

drivers/vfio/vfio_iommu_type1.c vfio_change_dma_owner() -> mmget_not_zero()

Type Parameter Key Value
CAPABLE 0 14
UNITS 0 mm unit_byte
LOCK2 &iommu->lock
TYPE_LOCK (struct vfio_iommu)->lock

drivers/vfio/vfio_iommu_type1.c vfio_iommu_type1_dma_rw_chunk() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
LOCK2 &iommu->lock
HALF_LOCKED2 &gvt->sched_lock
HALF_LOCKED2 &vgpu->vgpu_lock
TYPE_LOCK (struct vfio_iommu)->lock

drivers/vfio/vfio_iommu_type1.c vfio_lock_acct() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
HALF_LOCKED2 &container->group_lock
HALF_LOCKED2 &iommu->lock
HALF_LOCKED2 &vgpu->cache_lock

drivers/vfio/vfio_iommu_type1.c vfio_pin_page_external() -> mmget_not_zero()

Type Parameter Key Value
UNITS 0 mm unit_byte
LOCK2 &iommu->lock
LOCK2 &vgpu->cache_lock
HALF_LOCKED2 &vgpu->vgpu_lock
TYPE_LOCK (struct intel_vgpu)->cache_lock
TYPE_LOCK (struct vfio_iommu)->lock

kernel/bpf/arena.c zap_pages() -> mmget_not_zero()

Type Parameter Key Value
UNITS 0 mm unit_byte
LOCK2 &arena->lock
LOCK2 &arena->zap_mutex
TYPE_LOCK (struct bpf_arena)->lock
TYPE_LOCK (struct bpf_arena)->zap_mutex

drivers/gpu/drm/nouveau/nouveau_svm.c nouveau_svm_fault() -> mmget_not_zero()

Type Parameter Key Value
UNITS 0 mm unit_byte
HALF_LOCKED2 &pool->lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_add_list_work() -> mmget_not_zero()

Type Parameter Key Value
CAPPED_DATA 0 mm 1
DATA_SOURCE 0 mm $2
PREEMPT_ADD <- disables preempt
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
LOCK2 &prange->lock
LOCK2 &svms->deferred_list_lock
HALF_LOCKED2 &ctx->map_changing_lock
HALF_LOCKED2 &mm->mmap_lock
HALF_LOCKED2 global &ksm_thread_mutex
TYPE_LOCK (struct svm_range_list)->deferred_list_lock

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_bo_release() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_svm.c svm_range_evict_svm_bo() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING

drivers/iommu/iommu-sva.c iommu_sva_handle_mm() -> mmget_not_zero()

Type Parameter Key Value
DATA_SOURCE 0 mm $1
UNITS 0 mm unit_byte
HALF_LOCKED2 &pool->lock

drivers/accel/amdxdna/aie2_ctx.c aie2_populate_range() -> mmget_not_zero()

Type Parameter Key Value
UNITS 0 mm unit_byte
LOCK2 &client->hwctx_srcu
LOCK2 &hwctx->priv->job_sem
HALF_LOCKED2 &xdna->client_lock
HALF_LOCKED2 &xdna->dev_lock
TYPE_LOCK (struct amdxdna_client)->hwctx_srcu
TYPE_LOCK (struct amdxdna_hwctx_priv)->job_sem

drivers/accel/amdxdna/aie2_ctx.c aie2_sched_job_run() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
HALF_LOCKED2 &adev->reset_domain->sem
HALF_LOCKED2 &attr->mutex
HALF_LOCKED2 &guc->submission_state.lock
HALF_LOCKED2 &sched->job_list_lock

kernel/events/uprobes.c build_map_info() -> mmget_not_zero()

Type Parameter Key Value
RX_PATH
TASK_NOT_RUNNING
UNITS 0 mm unit_byte
LOCK2 &mapping->i_mmap_rwsem
LOCK2 &uprobe->register_rwsem
HALF_LOCKED2 global &event_mutex
TYPE_LOCK (struct address_space)->i_mmap_rwsem
TYPE_LOCK (struct uprobe)->register_rwsem

drivers/usb/gadget/function/f_fs.c ffs_user_copy_worker() -> mmget_not_zero()

Type Parameter Key Value
UNITS 0 mm unit_byte
HALF_LOCKED2 &pool->lock

drivers/vdpa/vdpa_sim/vdpa_sim.c vdpasim_work_fn() -> mmget_not_zero()

Type Parameter Key Value
PARAM_VALUE 0 mm 1-u64max