[Intel-gfx] [PATCH 3/3] drm/i915: Prevent leaking of -EIO from i915_wait_request()

Chris Wilson chris at chris-wilson.co.uk
Thu Dec 3 01:41:23 PST 2015


On Thu, Dec 03, 2015 at 10:14:54AM +0100, Daniel Vetter wrote:
> > @@ -4078,9 +4067,9 @@ i915_gem_ring_throttle(struct drm_device *dev, struct drm_file *file)
> >  	if (ret)
> >  		return ret;
> >  
> > -	ret = i915_gem_check_wedge(&dev_priv->gpu_error, false);
> > -	if (ret)
> > -		return ret;
> > +	/* ABI: return -EIO if already wedged */
> > +	if (i915_terminally_wedged(&dev_priv->gpu_error))
> 
> Commit message says there's only one case, but I count two:
> - throttle here
> - waiting for ring space in case the gpu died meanwhile

That wasn't intended for ABI preservation. (If you look at the execbuffer
reporting -EIO that is from request_alloc). I hit a bug after
wait_for_ring space if I didn't abort when the hang was detected - we
walked off the end of the ring. That shouldn't be possible, I think I
papered over a bug rather than diagnose it correctly. :|
-Chris

-- 
Chris Wilson, Intel Open Source Technology Centre


More information about the Intel-gfx mailing list