]> git.baikalelectronics.ru Git - kernel.git/commitdiff
drm/i915: Fix possible uninitialized variable in parallel extension
authorMatthew Brost <matthew.brost@intel.com>
Sun, 19 Dec 2021 00:19:09 +0000 (16:19 -0800)
committerJani Nikula <jani.nikula@intel.com>
Mon, 27 Dec 2021 09:33:34 +0000 (11:33 +0200)
'prev_engine' was declared inside the output loop and checked in the
inner after at least 1 pass of either loop. The variable should be
declared outside both loops as it needs to be persistent across the
entire loop structure.

Fixes: e5e32171a2cf ("drm/i915/guc: Connect UAPI to GuC multi-lrc interface")
Signed-off-by: Matthew Brost <matthew.brost@intel.com>
Reviewed-by: Lucas De Marchi <lucas.demarchi@intel.com>
Signed-off-by: John Harrison <John.C.Harrison@Intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20211219001909.24348-1-matthew.brost@intel.com
(cherry picked from commit cbffbac9c14220b8716b0a9c29d72243f6b14ef3)
Signed-off-by: Jani Nikula <jani.nikula@intel.com>
drivers/gpu/drm/i915/gem/i915_gem_context.c

index fb33d0322960d56bfce94714ebfbea4299f67a20..c37c9f0d81670e154de58fcf5812fb3266b54411 100644 (file)
@@ -564,6 +564,7 @@ set_proto_ctx_engines_parallel_submit(struct i915_user_extension __user *base,
                container_of_user(base, typeof(*ext), base);
        const struct set_proto_ctx_engines *set = data;
        struct drm_i915_private *i915 = set->i915;
+       struct i915_engine_class_instance prev_engine;
        u64 flags;
        int err = 0, n, i, j;
        u16 slot, width, num_siblings;
@@ -629,7 +630,6 @@ set_proto_ctx_engines_parallel_submit(struct i915_user_extension __user *base,
        /* Create contexts / engines */
        for (i = 0; i < width; ++i) {
                intel_engine_mask_t current_mask = 0;
-               struct i915_engine_class_instance prev_engine;
 
                for (j = 0; j < num_siblings; ++j) {
                        struct i915_engine_class_instance ci;