Jelajahi Sumber

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>
Chris Wilson 14 tahun lalu
induk
melakukan
602606a472
1 mengubah file dengan 3 tambahan dan 0 penghapusan
  1. 3 0
      drivers/gpu/drm/i915/i915_gem_execbuffer.c

+ 3 - 0
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);