[PATCH] clk: versaclock: Fix incorrect error check in versaclock_probe()

Kuan-Wei Chiu visitorckw at gmail.com
Fri Dec 12 19:06:15 CET 2025


The error check during the registration of FODs is incorrect. The code
currently checks IS_ERR(pll_name) immediately after assigning
fod_name[n].

Since pll_name is checked in a previous block, this condition will
always be false, causing any allocation failure in
versaclock_get_name() for fod_name to be ignored. This could lead
to usage of an invalid pointer.

Fix the condition to check fod_name[n] instead.

Fixes: dcf2cee77f2d ("clk: clk_versaclock: Add support for versaclock driver")
Signed-off-by: Kuan-Wei Chiu <visitorckw at gmail.com>
---
 drivers/clk/clk_versaclock.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/drivers/clk/clk_versaclock.c b/drivers/clk/clk_versaclock.c
index 19a787eaf0c..1dbde75f180 100644
--- a/drivers/clk/clk_versaclock.c
+++ b/drivers/clk/clk_versaclock.c
@@ -945,7 +945,7 @@ int versaclock_probe(struct udevice *dev)
 	/* Register FODs */
 	for (n = 0; n < vc5->chip_info->clk_fod_cnt; n++) {
 		fod_name[n] = versaclock_get_name(dev->name, "fod", n);
-		if (IS_ERR(pll_name)) {
+		if (IS_ERR(fod_name[n])) {
 			ret = PTR_ERR(fod_name[n]);
 			goto free_fod;
 		}
-- 
2.52.0.239.gd5f0c6e74e-goog



More information about the U-Boot mailing list