aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorSergio Perez Gonzalez <[email protected]>2025-07-29 02:00:49 +0000
committerMark Brown <[email protected]>2025-08-12 20:15:29 +0000
commit0ebbab41fba1bae6ccd96c0eec17026700ac6534 (patch)
tree23b588d8878a37c89c84585067807d37eb1c2928
parentASoC: codecs: Call strscpy() with correct size argument (diff)
downloadkernel-0ebbab41fba1bae6ccd96c0eec17026700ac6534.tar.gz
kernel-0ebbab41fba1bae6ccd96c0eec17026700ac6534.zip
ASoC: stm: stm32_i2s: Fix calc_clk_div() error handling in determine_rate()
calc_clk_div() will only return a non-zero value (-EINVAL) in case of error. On the other hand, req->rate is an unsigned long. It seems quite odd that req->rate would be assigned a negative value, which is clearly not a rate, and success would be returned. Reinstate previous logic, which would just return error. Fixes: afd529d74002 ("ASoC: stm: stm32_i2s: convert from round_rate() to determine_rate()") Link: https://scan7.scan.coverity.com/#/project-view/53936/11354?selectedIssue=1647702 Signed-off-by: Sergio Perez Gonzalez <[email protected]> Link: https://patch.msgid.link/[email protected] Signed-off-by: Mark Brown <[email protected]>
-rw-r--r--sound/soc/stm/stm32_i2s.c7
1 files changed, 2 insertions, 5 deletions
diff --git a/sound/soc/stm/stm32_i2s.c b/sound/soc/stm/stm32_i2s.c
index 0e489097d9c1..6ca21780f21d 100644
--- a/sound/soc/stm/stm32_i2s.c
+++ b/sound/soc/stm/stm32_i2s.c
@@ -469,11 +469,8 @@ static int stm32_i2smclk_determine_rate(struct clk_hw *hw,
int ret;
ret = stm32_i2s_calc_clk_div(i2s, req->best_parent_rate, req->rate);
- if (ret) {
- req->rate = ret;
-
- return 0;
- }
+ if (ret)
+ return ret;
mclk->freq = req->best_parent_rate / i2s->divider;