clk: tegra: bpmp: remove kcalloc

Use a flexible array member to avoid allocating separately.

Use __counted_by for extra runtime analysis.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Signed-off-by: Brian Masney <bmasney@redhat.com>
This commit is contained in:
Rosen Penev 2026-09-30 22:47:01 -07:00 committed by Brian Masney
parent eb938f033b
commit abd14114b2

View File

@ -32,7 +32,7 @@ struct tegra_bpmp_clk {
unsigned int id;
unsigned int num_parents;
unsigned int *parents;
unsigned int parents[] __counted_by(num_parents);
};
static inline struct tegra_bpmp_clk *to_tegra_bpmp_clk(struct clk_hw *hw)
@ -518,20 +518,14 @@ tegra_bpmp_clk_register(struct tegra_bpmp *bpmp,
unsigned int i;
int err;
clk = devm_kzalloc(bpmp->dev, sizeof(*clk), GFP_KERNEL);
clk = devm_kzalloc(bpmp->dev, struct_size(clk, parents, info->num_parents), GFP_KERNEL);
if (!clk)
return ERR_PTR(-ENOMEM);
clk->num_parents = info->num_parents;
clk->id = info->id;
clk->bpmp = bpmp;
clk->parents = devm_kcalloc(bpmp->dev, info->num_parents,
sizeof(*clk->parents), GFP_KERNEL);
if (!clk->parents)
return ERR_PTR(-ENOMEM);
clk->num_parents = info->num_parents;
/* hardware clock initialization */
memset(&init, 0, sizeof(init));
init.name = info->name;