drm/i915: avoid uninitialised var in eb_parse()
authorjsg <jsg@openbsd.org>
Wed, 11 Aug 2021 03:08:26 +0000 (03:08 +0000)
committerjsg <jsg@openbsd.org>
Wed, 11 Aug 2021 03:08:26 +0000 (03:08 +0000)
The backport of c9d9fdbc108af8915d3f497bbdf3898bf8f321b8 to 5.10 in
6976f3cf34a1a8b791c048bbaa411ebfe48666b1 removed more than it should
have leading to 'batch' being used uninitialised.  The 5.13 backport and
the mainline commit did not remove the portion this patch adds back.

Sent to the linux stable list and queued to be in 5.10.58.

sys/dev/pci/drm/i915/gem/i915_gem_execbuffer.c

index ff4a691..a83eaef 100644 (file)
@@ -2379,6 +2379,12 @@ static int eb_parse(struct i915_execbuffer *eb)
                eb->batch_flags |= I915_DISPATCH_SECURE;
        }
 
+       batch = eb_dispatch_secure(eb, shadow);
+       if (IS_ERR(batch)) {
+               err = PTR_ERR(batch);
+               goto err_trampoline;
+       }
+
        err = intel_engine_cmd_parser(eb->engine,
                                      eb->batch->vma,
                                      eb->batch_start_offset,
@@ -2405,6 +2411,7 @@ secure_batch:
 err_unpin_batch:
        if (batch)
                i915_vma_unpin(batch);
+err_trampoline:
        if (trampoline)
                i915_vma_unpin(trampoline);
 err_shadow: