On Monday, January 19, 2026 6:27:10 AM Central European Standard Time Liang, Prike wrote: > [Public] > > In order to avoid being blocked by the lock issue on some older GFX, I will > push the patch to amd-staging-drm-next. > If you have any concerns, please > let me know. >
Hi Prike, Thank you, feel free to add the necessary tags and push the patch. Best regards, Timur > > > > -----Original Message----- > > From: amd-gfx <[email protected]> On Behalf Of Liang, > > Prike Sent: Monday, January 19, 2026 9:58 AM > > To: Timur Kristóf <[email protected]>; > > [email protected]; Deucher, Alexander > > <[email protected]>; Koenig, Christian > > <[email protected]>; Limonciello, Mario > > <[email protected]>; Dan Carpenter <[email protected]> > > Subject: RE: [PATCH] drm/amdgpu: Fix validating flush_gpu_tlb_pasid() > > > > > > > > [Public] > > > > > > > > Thank you for the fix. Could you please add the following the tags? > > > > > > > > | Reported-by: kernel test robot <[email protected]> > > | Reported-by: Dan Carpenter <[email protected]> > > | Closes: https://lore.kernel.org/r/[email protected]/ > > > > > > > > Reviewed-by: Prike Liang <[email protected]> > > > > > > > > Regards, > > > > Prike > > > > > > > > > -----Original Message----- > > > From: Timur Kristóf <[email protected]> > > > Sent: Sunday, January 18, 2026 8:58 PM > > > To: [email protected]; Deucher, Alexander > > > <[email protected]>; Koenig, Christian > > > <[email protected]>; Liang, Prike <[email protected]>; > > > Limonciello, Mario <[email protected]> > > > Cc: Timur Kristóf <[email protected]> > > > Subject: [PATCH] drm/amdgpu: Fix validating flush_gpu_tlb_pasid() > > > > > > > > > > > > When a function holds a lock and we return without unlocking it, it > > > deadlocks the kernel. We should always unlock before returning. > > > > > > > > > > > > This commit fixes suspend/resume on SI. > > > Tested on two Tahiti GPUs: FirePro W9000 and R9 280X. > > > > > > > > > > > > Fixes: bc2dea30038a ("drm/amdgpu: validate the flush_gpu_tlb_pasid()") > > > Signed-off-by: Timur Kristóf <[email protected]> > > > --- > > > > > > drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c | 5 ++--- > > > 1 file changed, 2 insertions(+), 3 deletions(-) > > > > > > > > > > > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c > > > b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c > > > index 0e67fa4338ff..4fa24be1bf45 100644 > > > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c > > > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_gmc.c > > > @@ -769,7 +769,7 @@ int amdgpu_gmc_flush_gpu_tlb_pasid(struct > > > amdgpu_device *adev, uint16_t pasid, > > > > > > struct amdgpu_ring *ring = &adev->gfx.kiq[inst].ring; > > > struct amdgpu_kiq *kiq = &adev->gfx.kiq[inst]; > > > unsigned int ndw; > > > > > > - int r, cnt = 0; > > > + int r = 0, cnt = 0; > > > > > > uint32_t seq; > > > > > > > > > > > > /* > > > > > > @@ -782,7 +782,7 @@ int amdgpu_gmc_flush_gpu_tlb_pasid(struct > > > amdgpu_device *adev, uint16_t pasid, > > > > > > if (!adev->gmc.flush_pasid_uses_kiq || !ring->sched.ready) { > > > > > > > > > > > > if (!adev->gmc.gmc_funcs->flush_gpu_tlb_pasid) > > > > > > - return 0; > > > + goto error_unlock_reset; > > > > > > > > > > > > if (adev->gmc.flush_tlb_needs_extra_type_2) > > > > > > adev->gmc.gmc_funcs->flush_gpu_tlb_pasid(adev, > > > > > > pasid, @@ -797,7 +797,6 @@ int amdgpu_gmc_flush_gpu_tlb_pasid(struct > > > amdgpu_device *adev, uint16_t pasid, > > > > > > adev->gmc.gmc_funcs->flush_gpu_tlb_pasid(adev, pasid, > > > > > > flush_type, > > > all_hub, > > > inst); > > > > > > - r = 0; > > > > > > } else { > > > > > > /* 2 dwords flush + 8 dwords fence */ > > > ndw = kiq->pmf->invalidate_tlbs_size + 8; > > > > > > -- > > > 2.52.0 > >
