[Public] Reviewed-by: Prike Liang <prike.li...@amd.com>
Regards, Prike > -----Original Message----- > From: amd-gfx <amd-gfx-boun...@lists.freedesktop.org> On Behalf Of Alex > Deucher > Sent: Saturday, April 26, 2025 2:34 AM > To: amd-gfx@lists.freedesktop.org > Cc: Deucher, Alexander <alexander.deuc...@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.deuc...@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