summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDan Carpenter <dan.carpenter@linaro.org>2025-05-09 14:04:31 +0300
committerKrzysztof Kozlowski <krzysztof.kozlowski@linaro.org>2025-05-12 08:32:13 +0200
commitd44eeb20d9bedce11297a09628ba5dd39db236be (patch)
tree1f35cf7d6f45b068702b58100466ffc357cd3f7a
parent9c03507fcd6feae37a94eff376a1aa79700dd54a (diff)
memory: stm32_omm: Fix error handling in stm32_omm_configure()
There are two error handling bugs in the stm32_omm_configure() function. 1) The error code needs to be set if clk_get_rate() fails. 2) If devm_reset_control_get_exclusive() then call pm_runtime_put_sync_suspend() before returning. Fixes: 8181d061dcff ("memory: Add STM32 Octo Memory Manager driver") Signed-off-by: Dan Carpenter <dan.carpenter@linaro.org> Link: https://lore.kernel.org/r/a69ce0445324e994ea2ed7493bda1f6046c7ff69.1746781081.git.dan.carpenter@linaro.org Signed-off-by: Krzysztof Kozlowski <krzysztof.kozlowski@linaro.org>
-rw-r--r--drivers/memory/stm32_omm.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/drivers/memory/stm32_omm.c b/drivers/memory/stm32_omm.c
index bef7cf4391d6..8704c774e642 100644
--- a/drivers/memory/stm32_omm.c
+++ b/drivers/memory/stm32_omm.c
@@ -222,6 +222,7 @@ static int stm32_omm_configure(struct device *dev)
clk_rate = clk_get_rate(omm->clk_bulk[i].clk);
if (!clk_rate) {
dev_err(dev, "Invalid clock rate\n");
+ ret = -EINVAL;
goto error;
}
@@ -230,8 +231,10 @@ static int stm32_omm_configure(struct device *dev)
}
rstc = devm_reset_control_get_exclusive(dev, "omm");
- if (IS_ERR(rstc))
- return dev_err_probe(dev, PTR_ERR(rstc), "reset get failed\n");
+ if (IS_ERR(rstc)) {
+ ret = dev_err_probe(dev, PTR_ERR(rstc), "reset get failed\n");
+ goto error;
+ }
reset_control_assert(rstc);
udelay(2);