]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
memory: tegra: Fix possible null pointer dereference
authorEthan Tidmore <ethantidmore06@gmail.com>
Fri, 8 May 2026 01:57:16 +0000 (20:57 -0500)
committerKrzysztof Kozlowski <krzk@kernel.org>
Wed, 13 May 2026 19:15:51 +0000 (21:15 +0200)
The function tegra114_emc_find_timing() has the possibility of returning
null and it's return value 'timing' is dereferenced before it is
checked for null.

Place dereference after null pointer check.

Detected by Smatch:
drivers/memory/tegra/tegra114-emc.c:520 tegra114_emc_prepare_timing_change()
warn: variable dereferenced before check 'timing' (see line 515)

Fixes: dce208b5405f4 ("memory: tegra: Add Tegra114 EMC driver")
Signed-off-by: Ethan Tidmore <ethantidmore06@gmail.com>
Acked-by: Thierry Reding <treding@nvidia.com>
Link: https://patch.msgid.link/20260508015716.652347-1-ethantidmore06@gmail.com
Reported-by: kernel test robot <lkp@intel.com>
Reported-by: Dan Carpenter <error27@gmail.com>
Closes: https://lore.kernel.org/r/202605100506.wJFmI6IM-lkp@intel.com/
Signed-off-by: Krzysztof Kozlowski <krzk@kernel.org>
drivers/memory/tegra/tegra114-emc.c

index be6c699cb65615b0139e15d17ad3f7f034dc6d6c..fc3bf1a286307fdaea199dccdc614de895e84b9b 100644 (file)
@@ -512,14 +512,16 @@ static int tegra114_emc_prepare_timing_change(struct tegra_emc *emc,
        enum emc_dll_change dll_change;
        unsigned int pre_wait = 0;
        u32 val, mask;
-       bool next_dll_enabled = !(timing->emc_mode_1 & 0x1);
        bool last_dll_enabled = !(last->emc_mode_1 & 0x1);
        bool update = false;
+       bool next_dll_enabled;
        unsigned int i;
 
        if (!timing)
                return -ENOENT;
 
+       next_dll_enabled = !(timing->emc_mode_1 & 0x1);
+
        if (next_dll_enabled == last_dll_enabled)
                dll_change = DLL_CHANGE_NONE;
        else if (next_dll_enabled)