]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
drm/i915: Initialise outparam for error return from wait_for_register
authorChris Wilson <chris@chris-wilson.co.uk>
Wed, 16 Sep 2020 10:50:21 +0000 (11:50 +0100)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 27 Jul 2023 06:37:03 +0000 (08:37 +0200)
commit b79ffa914ede785a721f42d8ee3ce7b8eeede2bb upstream.

Just in case the caller passes in 0 for both slow&fast timeouts, make
sure we initialise the stack value returned. Add an assert so that we
don't make the mistake of passing 0 timeouts for the wait.

drivers/gpu/drm/i915/intel_uncore.c:2011 __intel_wait_for_register_fw() error: uninitialized symbol 'reg_value'.

References: 3f649ab728cd ("treewide: Remove uninitialized_var() usage")
Signed-off-by: Chris Wilson <chris@chris-wilson.co.uk>
Reviewed-by: José Roberto de Souza <jose.souza@intel.com>
Link: https://patchwork.freedesktop.org/patch/msgid/20200916105022.28316-1-chris@chris-wilson.co.uk
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/gpu/drm/i915/intel_uncore.c

index dae6b33fc4c4a999d6af7bb30c4ffc63be5d8a96..dc5483b31c1baa00ffc624c9f2e14e39acd9001f 100644 (file)
@@ -1926,13 +1926,14 @@ int __intel_wait_for_register_fw(struct intel_uncore *uncore,
                                 unsigned int slow_timeout_ms,
                                 u32 *out_value)
 {
-       u32 reg_value;
+       u32 reg_value = 0;
 #define done (((reg_value = intel_uncore_read_fw(uncore, reg)) & mask) == value)
        int ret;
 
        /* Catch any overuse of this function */
        might_sleep_if(slow_timeout_ms);
        GEM_BUG_ON(fast_timeout_us > 20000);
+       GEM_BUG_ON(!fast_timeout_us && !slow_timeout_ms);
 
        ret = -ETIMEDOUT;
        if (fast_timeout_us && fast_timeout_us <= 20000)