[PATCH 1/2] drm/amdgpu/userq: take the userq_mgr lock in suspend/resume

Liang, Prike Prike.Liang at amd.com
Mon Apr 28 12:41:26 UTC 2025


[Public]

Reviewed-by: Prike Liang <Prike.Liang at amd.com>

Regards,
      Prike

> -----Original Message-----
> From: amd-gfx <amd-gfx-bounces at lists.freedesktop.org> On Behalf Of Alex
> Deucher
> Sent: Saturday, April 26, 2025 2:34 AM
> To: amd-gfx at lists.freedesktop.org
> Cc: Deucher, Alexander <Alexander.Deucher at amd.com>
> Subject: [PATCH 1/2] drm/amdgpu/userq: take the userq_mgr lock in
> suspend/resume
>
> Add the missing locking.
>
> Fixes: 73e12e98ec0c ("drm/amdgpu/userq: add suspend and resume helpers")
> Signed-off-by: Alex Deucher <alexander.deucher at amd.com>
> ---
>  drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c | 4 ++++
>  1 file changed, 4 insertions(+)
>
> diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> index 451890ee3fb79..1fa9d2be87f39 100644
> --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_userq.c
> @@ -809,11 +809,13 @@ int amdgpu_userq_suspend(struct amdgpu_device
> *adev)
>       mutex_lock(&adev->userq_mutex);
>       list_for_each_entry_safe(uqm, tmp, &adev->userq_mgr_list, list) {
>               cancel_delayed_work_sync(&uqm->resume_work);
> +             mutex_lock(&uqm->userq_mutex);
>               idr_for_each_entry(&uqm->userq_idr, queue, queue_id) {
>                       r = amdgpu_userq_unmap_helper(uqm, queue);
>                       if (r)
>                               ret = r;
>               }
> +             mutex_unlock(&uqm->userq_mutex);
>       }
>       mutex_unlock(&adev->userq_mutex);
>       return ret;
> @@ -832,11 +834,13 @@ int amdgpu_userq_resume(struct amdgpu_device
> *adev)
>
>       mutex_lock(&adev->userq_mutex);
>       list_for_each_entry_safe(uqm, tmp, &adev->userq_mgr_list, list) {
> +             mutex_lock(&uqm->userq_mutex);
>               idr_for_each_entry(&uqm->userq_idr, queue, queue_id) {
>                       r = amdgpu_userq_map_helper(uqm, queue);
>                       if (r)
>                               ret = r;
>               }
> +             mutex_unlock(&uqm->userq_mutex);
>       }
>       mutex_unlock(&adev->userq_mutex);
>       return ret;
> --
> 2.49.0



More information about the amd-gfx mailing list