On Wed, Nov 21, 2012 at 01:04:03PM +0000, Chris Wilson wrote: > As we may invoke the shrinker whilst trying to allocate memory to hold > the gtt_space for this object, we need to be careful not to mark the > drm_mm_node as activated (by assigning it to this object) before we > have finished our sequence of allocations. > > Reported-by: Imre Deak <imre.deak at gmail.com> > Signed-off-by: Chris Wilson <chris at chris-wilson.co.uk> > --- > @@ -3449,11 +3443,16 @@ i915_gem_object_pin(struct drm_i915_gem_object *obj, > } > > if (obj->gtt_space == NULL) { > + struct drm_i915_private *dev_priv = obj->base.dev->dev_private; > + > ret = i915_gem_object_bind_to_gtt(obj, alignment, > map_and_fenceable, > nonblocking); > if (ret) > return ret; > + > + if (!dev_priv->mm.aliasing_ppgtt) > + i915_gem_gtt_bind_object(obj, obj->cache_level); Spurious hunk? -Daniel -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch