[Intel-gfx] [PATCH 3/3] drm/i915: Only do gtt cleanup in vma_unbind for the global vma

Daniel Vetter daniel at ffwll.ch
Wed May 14 18:40:32 CEST 2014


On Wed, May 14, 2014 at 07:14:13PM +0300, Ville Syrjälä wrote:
> On Fri, Feb 14, 2014 at 02:06:07PM +0100, Daniel Vetter wrote:
> > Otherwise we end up tearing down fences when e.g. the client quits
> > way too early. Might or might not fix a fence pin_count BUG Ville has
> > reported.
> > 
> > Cc: Ville Syrjälä <ville.syrjala at linux.intel.com>
> > Signed-off-by: Daniel Vetter <daniel.vetter at ffwll.ch>
> 
> For patches 1 and 3:
> Reviewed-by: Ville Syrjälä <ville.syrjala at linux.intel.com>

Merged, thanks for the review and writing the testcase.
-Daniel
> 
> > ---
> >  drivers/gpu/drm/i915/i915_gem.c | 12 +++++++-----
> >  1 file changed, 7 insertions(+), 5 deletions(-)
> > 
> > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c
> > index 675ad96a43e1..fa00b26a9cf7 100644
> > --- a/drivers/gpu/drm/i915/i915_gem.c
> > +++ b/drivers/gpu/drm/i915/i915_gem.c
> > @@ -2731,12 +2731,14 @@ int i915_vma_unbind(struct i915_vma *vma)
> >  	 * cause memory corruption through use-after-free.
> >  	 */
> >  
> > -	i915_gem_object_finish_gtt(obj);
> > +	if (i915_is_ggtt(vma->vm)) {
> > +		i915_gem_object_finish_gtt(obj);
> >  
> > -	/* release the fence reg _after_ flushing */
> > -	ret = i915_gem_object_put_fence(obj);
> > -	if (ret)
> > -		return ret;
> > +		/* release the fence reg _after_ flushing */
> > +		ret = i915_gem_object_put_fence(obj);
> > +		if (ret)
> > +			return ret;
> > +	}
> >  
> >  	trace_i915_vma_unbind(vma);
> >  
> > -- 
> > 1.8.5.2
> 
> -- 
> Ville Syrjälä
> Intel OTC

-- 
Daniel Vetter
Software Engineer, Intel Corporation
+41 (0) 79 365 57 48 - http://blog.ffwll.ch



More information about the Intel-gfx mailing list