[PATCH] clk: versal: Fix out-of-bounds parent id for DUMMY_PARENT

Padmarao Begari padmarao.begari at amd.com
Fri Mar 27 11:10:32 CET 2026


When a clock parent entry is DUMMY_PARENT (0xFFFFFFFE), masking it
with CLK_PARENTS_ID_MASK (0xFFFF) produces the value 0xFFFE (65534).
This value is stored in parent->id and later used as a clock array
index in versal_clock_get_parentid(). Since clock_max_idx is
typically 228, accessing clock[65534] is out-of-bounds, and the
garbage value read is used as a clock ID in subsequent clock rate
calculations, eventually causing U-Boot to crash. This is observed
as a crash during "clk dump" on AMD Versal Gen 2.

Fix this by setting parent->id = 0 for DUMMY_PARENT entries.

Fixes: 95105089afe2 ("clk: versal: Add clock driver support")
Signed-off-by: Padmarao Begari <padmarao.begari at amd.com>
---
 drivers/clk/clk_versal.c | 1 +
 1 file changed, 1 insertion(+)

diff --git a/drivers/clk/clk_versal.c b/drivers/clk/clk_versal.c
index 78a2410ca21..2e0c382ef30 100644
--- a/drivers/clk/clk_versal.c
+++ b/drivers/clk/clk_versal.c
@@ -326,6 +326,7 @@ static int __versal_clock_get_parents(struct clock_parent *parents, u32 *data,
 		parent = &parents[i];
 		parent->id = data[i] & CLK_PARENTS_ID_MASK;
 		if (data[i] == DUMMY_PARENT) {
+			parent->id = 0;
 			strcpy(parent->name, "dummy_name");
 			parent->flag = 0;
 		} else {
-- 
2.34.1



More information about the U-Boot mailing list