[PATCH] pwm: meson: Stop premature exit from for loop

Andrew Goodbody andrew.goodbody at linaro.org
Fri Aug 8 11:34:43 CEST 2025


In meson_pwm_probe the for loop attempts to get the name of a clock but
the following if..else statements only perform useful work if -ENODATA
is returned from clk_get_by_name. If clk_get_by_name simply succeeds
then this results in a premature exit from the for loop and the
following code can never be reached. Make the else clause only apply for
an error return from clk_get_by_name.

This issue was found by Smatch.

Signed-off-by: Andrew Goodbody <andrew.goodbody at linaro.org>
---
 drivers/pwm/pwm-meson.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/drivers/pwm/pwm-meson.c b/drivers/pwm/pwm-meson.c
index c2597d8b669..caa7af085fa 100644
--- a/drivers/pwm/pwm-meson.c
+++ b/drivers/pwm/pwm-meson.c
@@ -359,8 +359,9 @@ static int meson_pwm_probe(struct udevice *dev)
 
 			/* We have our source clock, do not alter HW clock mux */
 			continue;
-		} else
+		} else if (err) {
 			return err;
+		}
 
 		/* Get id in list */
 		for (p = 0 ; p < data->num_parents ; ++p) {

---
base-commit: 123cd77122a13288e1552b5d9b7c22a6f19e2e02
change-id: 20250808-pwm_meson-65549e7d24ab

Best regards,
-- 
Andrew Goodbody <andrew.goodbody at linaro.org>



More information about the U-Boot mailing list