drm/i915/gem: Cleanup shadow batch after I915_EXEC_SECURE
authorChris Wilson <chris@chris-wilson.co.uk>
Tue, 25 Feb 2020 08:22:26 +0000 (08:22 +0000)
committerChris Wilson <chris@chris-wilson.co.uk>
Tue, 25 Feb 2020 11:22:01 +0000 (11:22 +0000)
Tidy up after a call to eb_parse() if a later bind fails.

Closes: https://gitlab.freedesktop.org/drm/intel/issues/1312
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: Matthew Auld <matthew.auld@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200225082233.274530-4-chris@chris-wilson.co.uk
drivers/gpu/drm/i915/gem/i915_gem_execbuffer.c

index 87fa5f42c39a85e67e02001905ea57a9a2ac7538..4f9c1f5a4dedbbaa4db7c2b4823478c89fe0cbf1 100644 (file)
@@ -2713,7 +2713,7 @@ i915_gem_do_execbuffer(struct drm_device *dev,
                vma = i915_gem_object_ggtt_pin(eb.batch->obj, NULL, 0, 0, 0);
                if (IS_ERR(vma)) {
                        err = PTR_ERR(vma);
-                       goto err_vma;
+                       goto err_parse;
                }
 
                eb.batch = vma;
@@ -2792,6 +2792,7 @@ err_request:
 err_batch_unpin:
        if (eb.batch_flags & I915_DISPATCH_SECURE)
                i915_vma_unpin(eb.batch);
+err_parse:
        if (eb.batch->private)
                intel_engine_pool_put(eb.batch->private);
 err_vma: