Reviewed-by: Xiangliang Yu <Xiangliang.Yu at amd.com> Thanks! Xiangliang Yu > -----Original Message----- > From: amd-gfx [mailto:amd-gfx-bounces at lists.freedesktop.org] On Behalf > Of Monk Liu > Sent: Wednesday, May 03, 2017 11:48 AM > To: amd-gfx at lists.freedesktop.org > Cc: Liu, Monk <Monk.Liu at amd.com> > Subject: [PATCH 5/6] drm/amdgpu:kiq reg access need timeout(v2) > > this is to prevent fence forever waiting if FLR occured during register > accessing. > > v2: > use define instead of hardcode for the timeout msec > > Change-Id: I32cc219a08f5a67654beb26c45d1b95d2b60cc96 > Signed-off-by: Monk Liu <Monk.Liu at amd.com> > Reviewed-by: Christian König <christian.koenig at amd.com> > --- > drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c | 13 ++++++++----- > 1 file changed, 8 insertions(+), 5 deletions(-) > > diff --git a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > index 966bf7f..757cbc4 100644 > --- a/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > +++ b/drivers/gpu/drm/amd/amdgpu/amdgpu_virt.c > @@ -22,6 +22,7 @@ > */ > > #include "amdgpu.h" > +#define MAX_KIQ_REG_WAIT 100000 > > int amdgpu_allocate_static_csa(struct amdgpu_device *adev) { @@ -128,10 > +129,12 @@ uint32_t amdgpu_virt_kiq_rreg(struct amdgpu_device *adev, > uint32_t reg) > amdgpu_ring_commit(ring); > mutex_unlock(&kiq->ring_mutex); > > - r = fence_wait(f, false); > - if (r) > - DRM_ERROR("wait for kiq fence error: %ld.\n", r); > + r = fence_wait_timeout(f, false, > msecs_to_jiffies(MAX_KIQ_REG_WAIT)); > fence_put(f); > + if (r < 1) { > + DRM_ERROR("wait for kiq fence error: %ld.\n", r); > + return ~0; > + } > > val = adev->wb.wb[adev->virt.reg_val_offs]; > > @@ -154,8 +157,8 @@ void amdgpu_virt_kiq_wreg(struct amdgpu_device > *adev, uint32_t reg, uint32_t v) > amdgpu_ring_commit(ring); > mutex_unlock(&kiq->ring_mutex); > > - r = fence_wait(f, false); > - if (r) > + r = fence_wait_timeout(f, false, > msecs_to_jiffies(MAX_KIQ_REG_WAIT)); > + if (r < 1) > DRM_ERROR("wait for kiq fence error: %ld.\n", r); > fence_put(f); > } > -- > 2.7.4 > > _______________________________________________ > amd-gfx mailing list > amd-gfx at lists.freedesktop.org > https://lists.freedesktop.org/mailman/listinfo/amd-gfx