]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
phy: miphy28lp: kzalloc + kcalloc to single kzalloc
authorRosen Penev <rosenp@gmail.com>
Fri, 6 Mar 2026 22:24:57 +0000 (14:24 -0800)
committerVinod Koul <vkoul@kernel.org>
Sun, 10 May 2026 12:16:12 +0000 (17:46 +0530)
Use flex array to simplify allocation.

Allows using __counted_by for extra runtime analysis.

Signed-off-by: Rosen Penev <rosenp@gmail.com>
Reviewed-by: Patrice Chotard <patrice.chotard@foss.st.com>
Link: https://patch.msgid.link/20260306222457.8400-3-rosenp@gmail.com
Signed-off-by: Vinod Koul <vkoul@kernel.org>
drivers/phy/st/phy-miphy28lp.c

index 43cef89af55ecf21af4aed4538e61797a929cf1b..c576fc5569fe976d91ea9d6715ea3f1749411c5e 100644 (file)
@@ -224,8 +224,8 @@ struct miphy28lp_dev {
        struct device *dev;
        struct regmap *regmap;
        struct mutex miphy_mutex;
-       struct miphy28lp_phy **phys;
        int nphys;
+       struct miphy28lp_phy *phys[] __counted_by(nphys);
 };
 
 enum miphy_sata_gen { SATA_GEN1, SATA_GEN2, SATA_GEN3 };
@@ -1168,16 +1168,14 @@ static int miphy28lp_probe(struct platform_device *pdev)
        struct phy_provider *provider;
        struct phy *phy;
        int ret, port = 0;
+       size_t nphys;
 
-       miphy_dev = devm_kzalloc(&pdev->dev, sizeof(*miphy_dev), GFP_KERNEL);
+       nphys = of_get_child_count(np);
+       miphy_dev = devm_kzalloc(&pdev->dev, struct_size(miphy_dev, phys, nphys), GFP_KERNEL);
        if (!miphy_dev)
                return -ENOMEM;
 
-       miphy_dev->nphys = of_get_child_count(np);
-       miphy_dev->phys = devm_kcalloc(&pdev->dev, miphy_dev->nphys,
-                                      sizeof(*miphy_dev->phys), GFP_KERNEL);
-       if (!miphy_dev->phys)
-               return -ENOMEM;
+       miphy_dev->nphys = nphys;
 
        miphy_dev->regmap = syscon_regmap_lookup_by_phandle(np, "st,syscfg");
        if (IS_ERR(miphy_dev->regmap)) {