Defined in 1 files as a prototype:
Defined in 1 files as a function:
Referenced in 5 files:
- drivers/gpu/drm/amd/amdgpu/amdgpu_amdkfd_gpuvm.c
- drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c, line 965
- drivers/gpu/drm/amd/amdgpu/amdgpu_gem.c, line 560
- drivers/gpu/drm/amd/amdgpu/amdgpu_ttm.c, line 1275
- drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c, line 1052
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 |