On 5/19/26 13:17, Sunil Khatri wrote: > amdgpu_userq_get_doorbell_index returns a uint64 type index > as well as a int type failure values. Simplifying this and > using a int type return value and getting the index in input pointer > of type uint64 type. > > Also since it's used at once place making it static would be better. > > Signed-off-by: Sunil Khatri <[email protected]>
Reviewed-by: Christian König <[email protected]> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c | 19 ++++++++++--------- > drivers/gpu/drm/amd/amdgpu/amdgpu_userq.h | 4 ---- > 2 files changed, 10 insertions(+), 13 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c > index 3bfb9ae2cb3a..0737636fac43 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c > @@ -536,12 +536,13 @@ void amdgpu_userq_destroy_object(struct > amdgpu_userq_mgr *uq_mgr, > amdgpu_bo_unref(&userq_obj->obj); > } > > -uint64_t > +static int > amdgpu_userq_get_doorbell_index(struct amdgpu_userq_mgr *uq_mgr, > struct amdgpu_db_info *db_info, > - struct drm_file *filp) > + struct drm_file *filp, > + uint64_t *index) > { > - uint64_t index; > + uint64_t doorbell_index; > struct drm_gem_object *gobj; > struct amdgpu_userq_obj *db_obj = db_info->db_obj; > int r, db_size; > @@ -588,12 +589,13 @@ amdgpu_userq_get_doorbell_index(struct amdgpu_userq_mgr > *uq_mgr, > goto unpin_bo; > } > > - index = amdgpu_doorbell_index_on_bar(uq_mgr->adev, db_obj->obj, > + doorbell_index = amdgpu_doorbell_index_on_bar(uq_mgr->adev, db_obj->obj, > db_info->doorbell_offset, db_size); > drm_dbg_driver(adev_to_drm(uq_mgr->adev), > - "[Usermode queues] doorbell index=%lld\n", index); > + "[Usermode queues] doorbell index=%lld\n", > doorbell_index); > amdgpu_bo_unreserve(db_obj->obj); > - return index; > + *index = doorbell_index; > + return 0; > > unpin_bo: > amdgpu_bo_unpin(db_obj->obj); > @@ -776,10 +778,9 @@ amdgpu_userq_create(struct drm_file *filp, union > drm_amdgpu_userq *args) > db_info.doorbell_handle = queue->doorbell_handle; > db_info.db_obj = &queue->db_obj; > db_info.doorbell_offset = args->in.doorbell_offset; > - index = amdgpu_userq_get_doorbell_index(uq_mgr, &db_info, filp); > - if (index == (uint64_t)-EINVAL) { > + r = amdgpu_userq_get_doorbell_index(uq_mgr, &db_info, filp, &index); > + if (r) { > drm_file_err(uq_mgr->file, "Failed to get doorbell for > queue\n"); > - r = -EINVAL; > goto clean_mapping; > } > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.h > b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.h > index 49b33e2d6932..033b8a0de6b1 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.h > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.h > @@ -163,10 +163,6 @@ void amdgpu_userq_evict(struct amdgpu_userq_mgr *uq_mgr); > void amdgpu_userq_ensure_ev_fence(struct amdgpu_userq_mgr *userq_mgr, > struct amdgpu_eviction_fence_mgr *evf_mgr); > > -uint64_t amdgpu_userq_get_doorbell_index(struct amdgpu_userq_mgr *uq_mgr, > - struct amdgpu_db_info *db_info, > - struct drm_file *filp); > - > u32 amdgpu_userq_get_supported_ip_mask(struct amdgpu_device *adev); > bool amdgpu_userq_enabled(struct drm_device *dev); >
