lists.openwall.net | lists / announce owl-users owl-dev john-users john-dev passwdqc-users yescrypt popa3d-users / oss-security kernel-hardening musl sabotage tlsify passwords / crypt-dev xvendor / Bugtraq Full-Disclosure linux-kernel linux-netdev linux-ext4 linux-hardening PHC | |
Open Source and information security mailing list archives
| ||
|
Date: Wed, 12 Aug 2020 17:03:09 -0700 From: Rob Clark <robdclark@...il.com> To: dri-devel@...ts.freedesktop.org Cc: Rob Clark <robdclark@...omium.org>, Rob Clark <robdclark@...il.com>, Sean Paul <sean@...rly.run>, David Airlie <airlied@...ux.ie>, Daniel Vetter <daniel@...ll.ch>, Jordan Crouse <jcrouse@...eaurora.org>, Bjorn Andersson <bjorn.andersson@...aro.org>, Jonathan Marek <jonathan@...ek.ca>, Brian Masney <masneyb@...tation.org>, Takashi Iwai <tiwai@...e.de>, linux-arm-msm@...r.kernel.org (open list:DRM DRIVER FOR MSM ADRENO GPU), freedreno@...ts.freedesktop.org (open list:DRM DRIVER FOR MSM ADRENO GPU), linux-kernel@...r.kernel.org (open list) Subject: [PATCH] drm/msm/adreno: fix updating ring fence From: Rob Clark <robdclark@...omium.org> 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@...omium.org> --- drivers/gpu/drm/msm/adreno/adreno_gpu.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/gpu/drm/msm/adreno/adreno_gpu.c b/drivers/gpu/drm/msm/adreno/adreno_gpu.c index f9e3badf2fca..34e6242c1767 100644 --- a/drivers/gpu/drm/msm/adreno/adreno_gpu.c +++ b/drivers/gpu/drm/msm/adreno/adreno_gpu.c @@ -405,7 +405,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; } -- 2.26.2
Powered by blists - more mailing lists