summaryrefslogtreecommitdiffstats
path: root/drivers
diff options
context:
space:
mode:
authorRob Clark <robdclark@chromium.org>2020-08-12 17:03:09 -0700
committerRob Clark <robdclark@chromium.org>2020-08-17 12:24:41 -0700
commitf228af11dfa1d1616bc67f3a4119ab77c36181f1 (patch)
treee1ee59cf7117352430ab3806b7a9a77beab75b9c /drivers
parent35c719da95c0d28560bff7bafeaf07ebb212665e (diff)
downloadlinux-stable-f228af11dfa1d1616bc67f3a4119ab77c36181f1.tar.gz
linux-stable-f228af11dfa1d1616bc67f3a4119ab77c36181f1.tar.bz2
linux-stable-f228af11dfa1d1616bc67f3a4119ab77c36181f1.zip
drm/msm/adreno: fix updating ring fence
We need to set it to the most recent completed fence, not the most recent submitted. Otherwise we have races where we think we can retire submits that the GPU is not finished with, if the GPU doesn't manage to overwrite the seqno before we look at it. This can show up with hang recovery if one of the submits after the crashing submit also hangs after it is replayed. Fixes: f97decac5f4c ("drm/msm: Support multiple ringbuffers") Signed-off-by: Rob Clark <robdclark@chromium.org> Reviewed-by: Jordan Crouse <jcrouse@codeaurora.org> Signed-off-by: Rob Clark <robdclark@chromium.org>
Diffstat (limited to 'drivers')
-rw-r--r--drivers/gpu/drm/msm/adreno/adreno_gpu.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
index e23641a5ec84..d2dbb6968cba 100644
--- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c
+++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c
@@ -396,7 +396,7 @@ int adreno_hw_init(struct msm_gpu *gpu)
ring->next = ring->start;
/* reset completed fence seqno: */
- ring->memptrs->fence = ring->seqno;
+ ring->memptrs->fence = ring->fctx->completed_fence;
ring->memptrs->rptr = 0;
}