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>
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)