[PATCH] regulator: da9063: kzalloc + kcalloc to kzalloc
From: Rosen Penev
Date: Tue Mar 10 2026 - 20:47:10 EST
Reduce main allocation to a single kzalloc call by using a flexible
array member.
Allows using __counted_by for extra runtime analysis.
Signed-off-by: Rosen Penev <rosenp@xxxxxxxxx>
---
drivers/regulator/da9063-regulator.c | 9 ++-------
1 file changed, 2 insertions(+), 7 deletions(-)
diff --git a/drivers/regulator/da9063-regulator.c b/drivers/regulator/da9063-regulator.c
index 9d369cc45d41..bf34ea440d77 100644
--- a/drivers/regulator/da9063-regulator.c
+++ b/drivers/regulator/da9063-regulator.c
@@ -67,7 +67,7 @@ struct da9063_regulator_data {
struct da9063_regulators_pdata {
unsigned int n_regulators;
- struct da9063_regulator_data *regulator_data;
+ struct da9063_regulator_data regulator_data[] __counted_by(n_regulators);
};
/* Regulator capabilities and registers description */
@@ -857,15 +857,10 @@ static struct da9063_regulators_pdata *da9063_parse_regulators_dt(
return ERR_PTR(-EINVAL);
}
- pdata = devm_kzalloc(&pdev->dev, sizeof(*pdata), GFP_KERNEL);
+ pdata = devm_kzalloc(&pdev->dev, struct_size(pdata, regulator_data, num), GFP_KERNEL);
if (!pdata)
return ERR_PTR(-ENOMEM);
- pdata->regulator_data = devm_kcalloc(&pdev->dev,
- num, sizeof(*pdata->regulator_data),
- GFP_KERNEL);
- if (!pdata->regulator_data)
- return ERR_PTR(-ENOMEM);
pdata->n_regulators = num;
n = 0;
--
2.53.0