]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
drm/i915/gem: Avoid accessing uninitialized context in emit_rpcs_query()
authorKrzysztof Karas <krzysztof.karas@intel.com>
Tue, 9 Sep 2025 12:09:28 +0000 (12:09 +0000)
committerAndi Shyti <andi.shyti@linux.intel.com>
Mon, 15 Sep 2025 11:41:32 +0000 (13:41 +0200)
Following the error path in that function may lead to usage of
uninitialized struct i915_gem_ww_ctx object, so move call to
i915_gem_ww_ctx_init() a bit earlier.

Cc: Maarten Lankhorst <maarten.lankhorst@linux.intel.com>
Signed-off-by: Krzysztof Karas <krzysztof.karas@intel.com>
Reviewed-by: Sebastian Brzezinka <sebastian.brzezinka@intel.com>
Reviewed-by: Andi Shyti <andi.shyti@linux.intel.com>
Signed-off-by: Andi Shyti <andi.shyti@linux.intel.com>
Link: https://lore.kernel.org/r/casutxyfjv7o4ivadvbich2sq2dt22btc5wcke55r56ptgxx2h@lv7hnxrqw5rq
drivers/gpu/drm/i915/gem/selftests/i915_gem_context.c

index eb0158e434178259dc6884b2f4bf23e415156ac4..1330c0b431a72a915c518ad88491504f95a55d15 100644 (file)
@@ -962,13 +962,14 @@ emit_rpcs_query(struct drm_i915_gem_object *obj,
        if (IS_ERR(rpcs))
                return PTR_ERR(rpcs);
 
+       i915_gem_ww_ctx_init(&ww, false);
+
        batch = i915_vma_instance(rpcs, ce->vm, NULL);
        if (IS_ERR(batch)) {
                err = PTR_ERR(batch);
                goto err_put;
        }
 
-       i915_gem_ww_ctx_init(&ww, false);
 retry:
        err = i915_gem_object_lock(obj, &ww);
        if (!err)