drm/i915/execbuffer: On error, starting unwinding from the previous object
authorChris Wilson <chris@chris-wilson.co.uk>
Sun, 28 Nov 2010 15:31:02 +0000 (15:31 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Sun, 28 Nov 2010 15:31:02 +0000 (15:31 +0000)
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>
drivers/gpu/drm/i915/i915_gem_execbuffer.c

index d540701..66c898c 100644 (file)
@@ -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);