Defined in 1 files as a prototype:

Defined in 1 files as a function:

Referenced in 5 files:

Smatch caller information:

drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c amdgpu_cs_parser_bos() -> amdgpu_ttm_tt_set_user_pages()

Type Parameter Key Value
NOCHECK_CALL

drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c amdgpu_ttm_tt_unpopulate() -> amdgpu_ttm_tt_set_user_pages()

Type Parameter Key Value
PARAM_VALUE 0 ttm 4096-ptr_max
PARAM_VALUE 1 range 0
BUF_SIZE 0 ttm (-1),64
BUF_SIZE 0 ttm (-1),64
DATA_SOURCE 0 ttm $1
NOSPEC 0 ttm->num_pages
RX_PATH
TASK_NOT_RUNNING
NOCHECK_CALL
USER_DATA 0 ttm->num_pages 0-u32max[c]
USER_DATA 0 ttm->sg->nents 2-s32max[c]
NO_OVERFLOW_SIMPLE 0 ttm->cached_rsgt.size
NO_OVERFLOW_SIMPLE 0 ttm->dma_ttm.sg->orig_nents
NO_OVERFLOW_SIMPLE 0 ttm->gobj->size
NO_OVERFLOW_SIMPLE 0 ttm->num_pages
NO_OVERFLOW_SIMPLE 0 ttm->restore->snapshot_alloc.remaining_pages
NO_OVERFLOW_SIMPLE 0 ttm->sg->orig_nents
NO_OVERFLOW_SIMPLE 0 ttm->ttm.num_pages
NO_OVERFLOW_SIMPLE 0 ttm->ttm.sg->orig_nents

drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c amdgpu_userq_vm_validate_and_restore_queue() -> amdgpu_ttm_tt_set_user_pages()

Type Parameter Key Value
PARAM_VALUE 1 range 4096-ptr_max
NOCHECK_CALL
HALF_LOCKED2 &pool->lock

drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c amdgpu_gem_userptr_ioctl() -> amdgpu_ttm_tt_set_user_pages()

Type Parameter Key Value
PARAM_VALUE 0 ttm 1-u64max
PARAM_VALUE 1 range 4096-ptr_max
PARAM_VALUE 1 range->hmm_range.hmm_pfns 16,4096-ptr_max
BUF_SIZE 1 range 72
DATA_SOURCE 1 range r amdgpu_hmm_range_alloc
NOCHECK_CALL
USER_DATA 1 range->hmm_range.notifier->interval_tree.__subtree_last 0-u64max[c]
USER_DATA 1 range->hmm_range.notifier->interval_tree.start 0-u64max
NO_OVERFLOW_SIMPLE 0 ttm->ttm.sg->orig_nents
LOCK2 bo->tbo.base.resv

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c init_user_pages() -> amdgpu_ttm_tt_set_user_pages()

Type Parameter Key Value
PARAM_VALUE 0 ttm 1-u64max
PARAM_VALUE 1 range 4096-ptr_max
PARAM_VALUE 1 range->hmm_range.hmm_pfns 16,4096-ptr_max
BUF_SIZE 1 range 72
DATA_SOURCE 1 range r amdgpu_hmm_range_alloc
NOCHECK_CALL
USER_DATA 1 range->hmm_range.notifier->interval_tree.__subtree_last 0-u64max[c]
USER_DATA 1 range->hmm_range.notifier->interval_tree.start 0-u64max
NO_OVERFLOW_SIMPLE 0 ttm->ttm.sg->orig_nents
LOCK2 &p->mutex
LOCK2 &process_info->lock
LOCK2 bo->tbo.base.resv
TYPE_LOCK (struct amdkfd_process_info)->lock
TYPE_LOCK (struct kfd_process)->mutex

drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c update_invalid_user_pages() -> amdgpu_ttm_tt_set_user_pages()

Type Parameter Key Value
PARAM_VALUE 1 range 0,4096-ptr_max
PARAM_VALUE 1 range->hmm_range.hmm_pfns 16,4096-ptr_max
BUF_SIZE 1 range 0,72
BUF_SIZE 1 range 0,72
NOCHECK_CALL
LOCK2 &process_info->lock
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct amdkfd_process_info)->lock