diff options
author | Chris Wilson <chris@chris-wilson.co.uk> | 2010-11-28 15:31:02 +0000 |
---|---|---|
committer | Chris Wilson <chris@chris-wilson.co.uk> | 2010-11-28 15:31:02 +0000 |
commit | 602606a472963a67b234e6b5c99293de4aa9d06b (patch) | |
tree | 6af83a1782ea0c9ff3b83fe15902c9cf0c96e8c6 | |
parent | 432e58edc9de1d9c3d6a7b444b3c455b8f209a7d (diff) | |
download | op-kernel-dev-602606a472963a67b234e6b5c99293de4aa9d06b.zip op-kernel-dev-602606a472963a67b234e6b5c99293de4aa9d06b.tar.gz |
drm/i915/execbuffer: On error, starting unwinding from the previous object
As the error occurred on the current object, it means that its state was
not changed and so it should be excluded from the unwind.
Reported-by: Daniel Vetter <daniel.vetter@ffwll.ch>
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
-rw-r--r-- | drivers/gpu/drm/i915/i915_gem_execbuffer.c | 3 |
1 files changed, 3 insertions, 0 deletions
diff --git a/drivers/gpu/drm/i915/i915_gem_execbuffer.c b/drivers/gpu/drm/i915/i915_gem_execbuffer.c index d540701..66c898c 100644 --- a/drivers/gpu/drm/i915/i915_gem_execbuffer.c +++ b/drivers/gpu/drm/i915/i915_gem_execbuffer.c @@ -530,6 +530,9 @@ i915_gem_execbuffer_reserve(struct drm_device *dev, } while (1); err: + obj = list_entry(obj->exec_list.prev, + struct drm_i915_gem_object, + exec_list); while (objects != &obj->exec_list) { if (obj->gtt_space) i915_gem_object_unpin(obj); |