[PATCH] drm/etnaviv: fix another potential dma_resv DAG violation

Christian König ckoenig.leichtzumerken at gmail.com
Wed Sep 22 11:41:48 UTC 2021


Setting the exclusive fence without waiting for the shared
fences violates the DAG and is illegal.

We really need to get away from this ASAP and make the
driver interface more bullet prove.

Signed-off-by: Christian König <christian.koenig at amd.com>
Cc: <stable at vger.kernel.org>
---
 drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c | 6 +-----
 1 file changed, 1 insertion(+), 5 deletions(-)

diff --git a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
index 7e17bc2b5df1..4db40e88f67f 100644
--- a/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
+++ b/drivers/gpu/drm/etnaviv/etnaviv_gem_submit.c
@@ -185,19 +185,15 @@ static int submit_fence_sync(struct etnaviv_gem_submit *submit)
 				return ret;
 		}
 
-		if (submit->flags & ETNA_SUBMIT_NO_IMPLICIT)
-			continue;
-
 		if (bo->flags & ETNA_SUBMIT_BO_WRITE) {
 			ret = dma_resv_get_fences(robj, &bo->excl,
 						  &bo->nr_shared,
 						  &bo->shared);
 			if (ret)
 				return ret;
-		} else {
+		} else if (!(submit->flags & ETNA_SUBMIT_NO_IMPLICIT)) {
 			bo->excl = dma_fence_get(dma_resv_excl_fence(robj));
 		}
-
 	}
 
 	return ret;
-- 
2.25.1



More information about the dri-devel mailing list