drm/i915: Propagate error from unbinding an unfenceable object.

Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Cc: Jesse Barnes <jbarnes@virtuousgeek.org>
Reviewed-by: Jesse Barnes <jbarnes@virtuousgeek.org>
Signed-off-by: Eric Anholt <eric@anholt.net>
This commit is contained in:
Chris Wilson 2010-05-27 13:18:15 +01:00 committed by Eric Anholt
parent b118c1e363
commit 808b24d6ed

View file

@ -3307,9 +3307,13 @@ i915_gem_object_pin_and_relocate(struct drm_gem_object *obj,
obj_priv->tiling_mode != I915_TILING_NONE; obj_priv->tiling_mode != I915_TILING_NONE;
/* Check fence reg constraints and rebind if necessary */ /* Check fence reg constraints and rebind if necessary */
if (need_fence && !i915_gem_object_fence_offset_ok(obj, if (need_fence &&
obj_priv->tiling_mode)) !i915_gem_object_fence_offset_ok(obj,
i915_gem_object_unbind(obj); obj_priv->tiling_mode)) {
ret = i915_gem_object_unbind(obj);
if (ret)
return ret;
}
/* Choose the GTT offset for our buffer and put it there. */ /* Choose the GTT offset for our buffer and put it there. */
ret = i915_gem_object_pin(obj, (uint32_t) entry->alignment); ret = i915_gem_object_pin(obj, (uint32_t) entry->alignment);