[PATCH] clk: renesas: cpg-mssr: use struct_size

From: Rosen Penev

Date: Mon Mar 23 2026 - 22:11:31 EST


struct_size is what is normally used when a flexible array member is
present to avoid accidental mistakes. pm_size is still needed for the
memcpy call below.

Added __counted_by for extra runtime analysis.

Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
---
drivers/clk/renesas/renesas-cpg-mssr.c | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)

diff --git a/drivers/clk/renesas/renesas-cpg-mssr.c b/drivers/clk/renesas/renesas-cpg-mssr.c
index 64a432fd0e8a..26ea85cfaa02 100644
--- a/drivers/clk/renesas/renesas-cpg-mssr.c
+++ b/drivers/clk/renesas/renesas-cpg-mssr.c
@@ -569,7 +569,7 @@ static void __init cpg_mssr_register_mod_clk(const struct mssr_mod_clk *mod,
struct cpg_mssr_clk_domain {
struct generic_pm_domain genpd;
unsigned int num_core_pm_clks;
- unsigned int core_pm_clks[];
+ unsigned int core_pm_clks[] __counted_by(num_core_pm_clks);
};

static struct cpg_mssr_clk_domain *cpg_mssr_clk_domain;
@@ -667,7 +667,7 @@ static int __init cpg_mssr_add_clk_domain(struct device *dev,
size_t pm_size = num_core_pm_clks * sizeof(core_pm_clks[0]);
int ret;

- pd = devm_kzalloc(dev, sizeof(*pd) + pm_size, GFP_KERNEL);
+ pd = devm_kzalloc(dev, struct_size(pd, core_pm_clks, num_core_pm_clks), GFP_KERNEL);
if (!pd)
return -ENOMEM;

--
2.53.0