On 12/19/25 14:41, Tvrtko Ursulin wrote:
> The bo list is immutable during command submission since the drm_exec
> conversion so we can remove the mutex.
> 
> Signed-off-by: Tvrtko Ursulin <[email protected]>

Reviewed-by: Christian König <[email protected]>

> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c |  3 +--
>  drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h |  4 ----
>  drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c      | 15 ++++-----------
>  3 files changed, 5 insertions(+), 17 deletions(-)
> 
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
> index 72c5096c3b18..fbac929f711c 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.c
> @@ -41,7 +41,7 @@ static void amdgpu_bo_list_free_rcu(struct rcu_head *rcu)
>  {
>       struct amdgpu_bo_list *list = container_of(rcu, struct amdgpu_bo_list,
>                                                  rhead);
> -     mutex_destroy(&list->bo_list_mutex);
> +
>       kvfree(list);
>  }
>  
> @@ -133,7 +133,6 @@ int amdgpu_bo_list_create(struct amdgpu_device *adev, 
> struct drm_file *filp,
>  
>       trace_amdgpu_cs_bo_status(list->num_entries, total_size);
>  
> -     mutex_init(&list->bo_list_mutex);
>       *result = list;
>       return 0;
>  
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h
> index 2b5e7c46a39d..1acf53f8b2f9 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_bo_list.h
> @@ -51,10 +51,6 @@ struct amdgpu_bo_list {
>       unsigned first_userptr;
>       unsigned num_entries;
>  
> -     /* Protect access during command submission.
> -      */
> -     struct mutex bo_list_mutex;
> -
>       struct amdgpu_bo_list_entry entries[] __counted_by(num_entries);
>  };
>  
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c 
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> index 203223fd0b54..bc9cee3fdf27 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_cs.c
> @@ -881,8 +881,6 @@ static int amdgpu_cs_parser_bos(struct amdgpu_cs_parser 
> *p,
>                       return r;
>       }
>  
> -     mutex_lock(&p->bo_list->bo_list_mutex);
> -
>       /* Get userptr backing pages. If pages are updated after registered
>        * in amdgpu_gem_userptr_ioctl(), amdgpu_cs_list_validate() will do
>        * amdgpu_ttm_backend_bind() to flush and invalidate new pages
> @@ -998,7 +996,6 @@ static int amdgpu_cs_parser_bos(struct amdgpu_cs_parser 
> *p,
>               amdgpu_hmm_range_free(e->range);
>               e->range = NULL;
>       }
> -     mutex_unlock(&p->bo_list->bo_list_mutex);
>       return r;
>  }
>  
> @@ -1381,7 +1378,6 @@ static int amdgpu_cs_submit(struct amdgpu_cs_parser *p,
>       amdgpu_vm_move_to_lru_tail(p->adev, &fpriv->vm);
>  
>       mutex_unlock(&p->adev->notifier_lock);
> -     mutex_unlock(&p->bo_list->bo_list_mutex);
>       return 0;
>  }
>  
> @@ -1453,28 +1449,25 @@ int amdgpu_cs_ioctl(struct drm_device *dev, void 
> *data, struct drm_file *filp)
>  
>       r = amdgpu_cs_patch_jobs(&parser);
>       if (r)
> -             goto error_backoff;
> +             goto error_fini;
>  
>       r = amdgpu_cs_vm_handling(&parser);
>       if (r)
> -             goto error_backoff;
> +             goto error_fini;
>  
>       r = amdgpu_cs_sync_rings(&parser);
>       if (r)
> -             goto error_backoff;
> +             goto error_fini;
>  
>       trace_amdgpu_cs_ibs(&parser);
>  
>       r = amdgpu_cs_submit(&parser, data);
>       if (r)
> -             goto error_backoff;
> +             goto error_fini;
>  
>       amdgpu_cs_parser_fini(&parser);
>       return 0;
>  
> -error_backoff:
> -     mutex_unlock(&parser.bo_list->bo_list_mutex);
> -
>  error_fini:
>       amdgpu_cs_parser_fini(&parser);
>       return r;

Reply via email to