On Wed, Jun 02, 2021 at 11:41:48AM -0500, Jason Ekstrand wrote:
> This reverts commit 9e31c1fe45d555a948ff66f1f0e3fe1f83ca63f7.  Ever
> since that commit, we've been having issues where a hang in one client
> can propagate to another.  In particular, a hang in an app can propagate
> to the X server which causes the whole desktop to lock up.

I think we need a note to backporters here:

"For backporters: Please note that you _must_ have a backport of
https://lore.kernel.org/dri-devel/20210602164149.391653-2-ja...@jlekstrand.net/
for otherwise backporting just this patch opens up a security bug."
 
Or something like that.
-Daniel

> Signed-off-by: Jason Ekstrand <jason.ekstr...@intel.com>
> Reported-by: Marcin Slusarz <marcin.slus...@intel.com>
> Cc: <sta...@vger.kernel.org> # v5.6+
> Cc: Jason Ekstrand <jason.ekstr...@intel.com>
> Cc: Marcin Slusarz <marcin.slus...@intel.com>
> Closes: https://gitlab.freedesktop.org/drm/intel/-/issues/3080
> Fixes: 9e31c1fe45d5 ("drm/i915: Propagate errors on awaiting already signaled 
> fences")
> Signed-off-by: Daniel Vetter <daniel.vet...@ffwll.ch>
> Reviewed-by: Jon Bloomfield <jon.bloomfi...@intel.com>
> ---
>  drivers/gpu/drm/i915/i915_request.c | 8 ++------
>  1 file changed, 2 insertions(+), 6 deletions(-)
> 
> diff --git a/drivers/gpu/drm/i915/i915_request.c 
> b/drivers/gpu/drm/i915/i915_request.c
> index 970d8f4986bbe..b796197c07722 100644
> --- a/drivers/gpu/drm/i915/i915_request.c
> +++ b/drivers/gpu/drm/i915/i915_request.c
> @@ -1426,10 +1426,8 @@ i915_request_await_execution(struct i915_request *rq,
>  
>       do {
>               fence = *child++;
> -             if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) {
> -                     i915_sw_fence_set_error_once(&rq->submit, fence->error);
> +             if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags))
>                       continue;
> -             }
>  
>               if (fence->context == rq->fence.context)
>                       continue;
> @@ -1527,10 +1525,8 @@ i915_request_await_dma_fence(struct i915_request *rq, 
> struct dma_fence *fence)
>  
>       do {
>               fence = *child++;
> -             if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags)) {
> -                     i915_sw_fence_set_error_once(&rq->submit, fence->error);
> +             if (test_bit(DMA_FENCE_FLAG_SIGNALED_BIT, &fence->flags))
>                       continue;
> -             }
>  
>               /*
>                * Requests on the same timeline are explicitly ordered, along
> -- 
> 2.31.1
> 

-- 
Daniel Vetter
Software Engineer, Intel Corporation
http://blog.ffwll.ch
_______________________________________________
Intel-gfx mailing list
Intel-gfx@lists.freedesktop.org
https://lists.freedesktop.org/mailman/listinfo/intel-gfx

Reply via email to