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

Michal Simek michal.simek at amd.com
Tue Apr 7 13:10:34 CEST 2026



On 3/27/26 11:10, Padmarao Begari wrote:
> 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 {

Applied.
M


More information about the U-Boot mailing list