On Sat, Aug 09, 2014 at 05:37:22PM +0100, Chris Wilson wrote: > If an object is not bound into the global GTT, then it cannot be > accessed via the GTT. This restores the original code that was muddled > by ppGTT. In the process, we remove a WARN that had long outlived its > usefulness and was simply being coded around instead. > > Signed-off-by: Chris Wilson <chris@xxxxxxxxxxxxxxxxxx> > --- > drivers/gpu/drm/i915/i915_gem.c | 22 +++++----------------- > 1 file changed, 5 insertions(+), 17 deletions(-) > > diff --git a/drivers/gpu/drm/i915/i915_gem.c b/drivers/gpu/drm/i915/i915_gem.c > index 80b807b724a6..99250d27668d 100644 > --- a/drivers/gpu/drm/i915/i915_gem.c > +++ b/drivers/gpu/drm/i915/i915_gem.c > @@ -3594,11 +3594,12 @@ int > i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj, bool write) > { > struct drm_i915_private *dev_priv = obj->base.dev->dev_private; > + struct i915_vma *vma = i915_gem_obj_to_ggtt(obj); > uint32_t old_write_domain, old_read_domains; > int ret; > > /* Not valid to be called on unbound objects. */ > - if (!i915_gem_obj_bound_any(obj)) > + if (vma == NULL) > return -EINVAL; > > if (obj->base.write_domain == I915_GEM_DOMAIN_GTT) > @@ -3640,13 +3641,9 @@ i915_gem_object_set_to_gtt_domain(struct drm_i915_gem_object *obj, bool write) > old_write_domain); > > /* And bump the LRU for this access */ > - if (i915_gem_object_is_inactive(obj)) { > - struct i915_vma *vma = i915_gem_obj_to_ggtt(obj); > - if (vma) > - list_move_tail(&vma->mm_list, > - &dev_priv->gtt.base.inactive_list); > - > - } > + if (i915_gem_object_is_inactive(obj)) Ben will put a few more needles into his danvet voodoo doll, but I guess this here is a fairly clear indicator that tracking the active bit on the object instead of the vma wasn't an awesome idea ... Anyway, patch looks good, merged. -Daniel > + list_move_tail(&vma->mm_list, > + &dev_priv->gtt.base.inactive_list); > > return 0; > } > @@ -3810,9 +3807,6 @@ static bool is_pin_display(struct drm_i915_gem_object *obj) > { > struct i915_vma *vma; > > - if (list_empty(&obj->vma_list)) > - return false; > - > vma = i915_gem_obj_to_ggtt(obj); > if (!vma) > return false; > @@ -5255,12 +5249,6 @@ struct i915_vma *i915_gem_obj_to_ggtt(struct drm_i915_gem_object *obj) > { > struct i915_vma *vma; > > - /* This WARN has probably outlived its usefulness (callers already > - * WARN if they don't find the GGTT vma they expect). When removing, > - * remember to remove the pre-check in is_pin_display() as well */ > - if (WARN_ON(list_empty(&obj->vma_list))) > - return NULL; > - > vma = list_first_entry(&obj->vma_list, typeof(*vma), vma_link); > if (vma->vm != obj_to_ggtt(obj)) > return NULL; > -- > 2.1.0.rc1 > > _______________________________________________ > Intel-gfx mailing list > Intel-gfx@xxxxxxxxxxxxxxxxxxxxx > http://lists.freedesktop.org/mailman/listinfo/intel-gfx -- Daniel Vetter Software Engineer, Intel Corporation +41 (0) 79 365 57 48 - http://blog.ffwll.ch _______________________________________________ Intel-gfx mailing list Intel-gfx@xxxxxxxxxxxxxxxxxxxxx http://lists.freedesktop.org/mailman/listinfo/intel-gfx