Documented in 1 files:

Defined in 1 files as a function:

Referenced in 9 files:

Smatch caller information:

drivers/gpu/drm/amd/amdgpu/../amdkfd/kfd_process.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 global &kfd_processes_mutex
HALF_LOCKED2 global &kfd_processes_srcu

drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
LOCK2 rcu_read

drivers/gpu/drm/i915/gt/intel_engine_heartbeat.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
LOCK2 rcu_read

drivers/gpu/drm/i915/i915_vma.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 obj->base.resv

drivers/gpu/drm/etnaviv/etnaviv_gpu.c etnaviv_gpu_wait_fence_interruptible() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-1025,1027-1029,1031-u64max
DATA_SOURCE 0 fence r xa_load
LOCK2 rcu_read

drivers/gpu/drm/scheduler/sched_entity.c drm_sched_entity_kill_jobs_work() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 4096-ptr_max
HALF_LOCKED2 &pool->lock

drivers/gpu/drm/i915/gt/intel_context.c i915_request_get_rcu() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &parent->guc_state.lock
LOCK2 flags
TYPE_LOCK (struct intel_context)->guc_state.lock

drivers/gpu/drm/i915/gem/i915_gem_context.c i915_request_get_rcu() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &ctx->engines_mutex

drivers/dma-buf/dma-fence-chain.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &pool->lock

drivers/dma-buf/st-dma-fence.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
LOCK2 rcu_read

drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c amdgpu_fence_wait_empty() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &adev->grbm_idx_mutex
HALF_LOCKED2 &adev->reset_domain->sem
HALF_LOCKED2 &attr->mutex

drivers/gpu/drm/amd/amdgpu/amdgpu_fence.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &dqm->lock_hidden

drivers/dma-buf/dma-resv.c dma_resv_iter_walk_unlocked() -> dma_fence_get_rcu()

Type Parameter Key Value
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &m->lock
HALF_LOCKED2 global &drm_unplug_srcu

drivers/gpu/drm/i915/gt/intel_gt_requests.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &tl->mutex
LOCK2 rcu_read
TYPE_LOCK (struct intel_timeline)->mutex

drivers/gpu/drm/msm/msm_drv.c wait_fence() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
DATA_SOURCE 0 fence r idr_find
PREEMPT_ADD <- disables preempt
LOCK2 &queue->idr_lock
TYPE_LOCK (struct msm_gpu_submitqueue)->idr_lock

drivers/gpu/drm/i915/i915_active.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read

drivers/gpu/drm/v3d/v3d_sched.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &adev->reset_domain->sem
HALF_LOCKED2 &attr->mutex
HALF_LOCKED2 &guc->submission_state.lock
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &sched->job_list_lock

drivers/gpu/drm/i915/gt/intel_engine_cs.c i915_request_get_rcu() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &engine->sched_engine->lock
LOCK2 flags
HALF_LOCKED2 &capture_mutex
TYPE_LOCK (struct i915_sched_engine)->lock

drivers/gpu/drm/xe/xe_sync.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &vm->lock

drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
LOCK2 rcu_read
HALF_LOCKED2 &uq_mgr->userq_mutex

drivers/gpu/drm/i915/gt/intel_timeline.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 &m->lock
LOCK2 &tl->mutex
LOCK2 rcu_read
TYPE_LOCK (struct intel_timeline)->mutex
TYPE_LOCK (struct seq_file)->lock

drivers/gpu/drm/i915/i915_vma_resource.c i915_vma_resource_bind_dep_sync_all() -> dma_fence_get_rcu()

Type Parameter Key Value
LOCK2 &vm->mutex
HALF_LOCKED2 &pool->lock
TYPE_LOCK (struct i915_address_space)->mutex

drivers/gpu/drm/i915/gt/intel_execlists_submission.c i915_request_get_rcu() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 4096-ptr_max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &engine->sched_engine->lock
LOCK2 irq
LOCK2 rcu_read
HALF_LOCKED2 bh
TYPE_LOCK (struct i915_sched_engine)->lock

drivers/dma-buf/sw_sync.c sync_pt_create() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 4096-ptr_max
PREEMPT_ADD <- disables preempt
LOCK2 &obj->lock
LOCK2 irq
TYPE_LOCK (struct sync_timeline)->lock

drivers/gpu/drm/i915/gt/intel_lrc.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
LOCK2 rcu_read

drivers/gpu/drm/drm_syncobj.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &syncobj->lock

drivers/gpu/drm/amd/amdgpu/amdgpu_eviction_fence.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &pool->lock
HALF_LOCKED2 &uq_mgr->userq_mutex

drivers/gpu/drm/i915/i915_request.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
LOCK2 rcu_read

drivers/gpu/drm/i915/i915_request.c i915_request_get_rcu() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 4096-ptr_max
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &rq->engine->uncore->lock

drivers/accel/amdxdna/aie2_ctx.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
RX_PATH
TASK_NOT_RUNNING
LOCK2 rcu_read
HALF_LOCKED2 &hwctx->priv->job_sem
HALF_LOCKED2 &xdna->client_lock
HALF_LOCKED2 &xdna->dev_lock

drivers/gpu/drm/i915/gt/intel_reset.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
PREEMPT_ADD
RX_PATH
TASK_NOT_RUNNING
LOCK2 &gt->reset.mutex
LOCK2 &timelines->lock
LOCK2 rcu_read
TYPE_LOCK (struct intel_gt_timelines)->lock
TYPE_LOCK (struct intel_reset)->mutex

drivers/gpu/drm/amd/amdgpu/amdgpu_device.c dma_fence_get_rcu_safe() -> dma_fence_get_rcu()

Type Parameter Key Value
PARAM_VALUE 0 fence 1-u64max
LOCK2 &pool->lock
LOCK2 rcu_read
HALF_LOCKED2 &adev->enforce_isolation_mutex