diff mbox series

[v2,1/2] soc: ti: Convert allocations to devm

Message ID 20221010131538.7333-2-nfrayer@baylibre.com (mailing list archive)
State New, archived
Headers show
Series soc: ti: Convert K3 SoC info driver to module | expand

Commit Message

Nicolas Frayer Oct. 10, 2022, 1:15 p.m. UTC
Changed the memory and resource allocations in the probe function
to devm. Also added a remove callback.

Signed-off-by: Nicolas Frayer <nfrayer@baylibre.com>
---
 drivers/soc/ti/k3-socinfo.c | 36 +++++++++++++++++++-----------------
 1 file changed, 19 insertions(+), 17 deletions(-)

Comments

Nishanth Menon Oct. 17, 2022, 10:15 p.m. UTC | #1
On 15:15-20221010, Nicolas Frayer wrote:
[...]

> +static int k3_chipinfo_remove(struct platform_device *pdev)
> +{
> +	struct soc_device *soc_dev = platform_get_drvdata(pdev);
>  
> -err_free_rev:
> -	kfree(soc_dev_attr->revision);
> -err:
> -	kfree(soc_dev_attr);
> -	return ret;
> +	if (soc_dev != NULL)

next-20221017 checkpatch --strict suggests if (soc_dev) ?

> +		soc_device_unregister(soc_dev);
> +
> +	return 0;
>  }
>
Nicolas Frayer Oct. 19, 2022, 5:50 p.m. UTC | #2
Thanks Nishanth, I'll change this in next version.

Le mar. 18 oct. 2022 à 00:15, Nishanth Menon <nm@ti.com> a écrit :
>
> On 15:15-20221010, Nicolas Frayer wrote:
> [...]
>
> > +static int k3_chipinfo_remove(struct platform_device *pdev)
> > +{
> > +     struct soc_device *soc_dev = platform_get_drvdata(pdev);
> >
> > -err_free_rev:
> > -     kfree(soc_dev_attr->revision);
> > -err:
> > -     kfree(soc_dev_attr);
> > -     return ret;
> > +     if (soc_dev != NULL)
>
> next-20221017 checkpatch --strict suggests if (soc_dev) ?
>
> > +             soc_device_unregister(soc_dev);
> > +
> > +     return 0;
> >  }
> >
>
> --
> Regards,
> Nishanth Menon
> Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D
Nicolas Frayer Oct. 19, 2022, 5:58 p.m. UTC | #3
Le mer. 19 oct. 2022 à 19:50, Nicolas Frayer <nfrayer@baylibre.com> a écrit :
>
> Thanks Nishanth, I'll change this in next version.
>
> Le mar. 18 oct. 2022 à 00:15, Nishanth Menon <nm@ti.com> a écrit :
> >
> > On 15:15-20221010, Nicolas Frayer wrote:
> > [...]
> >
> > > +static int k3_chipinfo_remove(struct platform_device *pdev)
> > > +{
> > > +     struct soc_device *soc_dev = platform_get_drvdata(pdev);
> > >
> > > -err_free_rev:
> > > -     kfree(soc_dev_attr->revision);
> > > -err:
> > > -     kfree(soc_dev_attr);
> > > -     return ret;
> > > +     if (soc_dev != NULL)
> >
> > next-20221017 checkpatch --strict suggests if (soc_dev) ?
> >
> > > +             soc_device_unregister(soc_dev);
> > > +
> > > +     return 0;
> > >  }
> > >
> >
> > --
> > Regards,
> > Nishanth Menon
> > Key (0xDDB5849D1736249D) / Fingerprint: F8A2 8693 54EB 8232 17A3  1A34 DDB5 849D 1736 249D

[Sorry for top posting]

Thanks Nishanth, I'll change this in next version.
diff mbox series

Patch

diff --git a/drivers/soc/ti/k3-socinfo.c b/drivers/soc/ti/k3-socinfo.c
index e6047b23a86f..3311797145ed 100644
--- a/drivers/soc/ti/k3-socinfo.c
+++ b/drivers/soc/ti/k3-socinfo.c
@@ -97,21 +97,18 @@  static int k3_chipinfo_probe(struct platform_device *pdev)
 	partno_id = (jtag_id & CTRLMMR_WKUP_JTAGID_PARTNO_MASK) >>
 		 CTRLMMR_WKUP_JTAGID_PARTNO_SHIFT;
 
-	soc_dev_attr = kzalloc(sizeof(*soc_dev_attr), GFP_KERNEL);
+	soc_dev_attr = devm_kzalloc(&pdev->dev, sizeof(*soc_dev_attr), GFP_KERNEL);
 	if (!soc_dev_attr)
 		return -ENOMEM;
 
-	soc_dev_attr->revision = kasprintf(GFP_KERNEL, "SR%x.0", variant);
-	if (!soc_dev_attr->revision) {
-		ret = -ENOMEM;
-		goto err;
-	}
+	soc_dev_attr->revision = devm_kasprintf(&pdev->dev, GFP_KERNEL, "SR%x.0", variant);
+	if (!soc_dev_attr->revision)
+		return -ENOMEM;
 
 	ret = k3_chipinfo_partno_to_names(partno_id, soc_dev_attr);
 	if (ret) {
 		dev_err(dev, "Unknown SoC JTAGID[0x%08X]\n", jtag_id);
-		ret = -ENODEV;
-		goto err_free_rev;
+		return -ENODEV;
 	}
 
 	node = of_find_node_by_path("/");
@@ -119,22 +116,26 @@  static int k3_chipinfo_probe(struct platform_device *pdev)
 	of_node_put(node);
 
 	soc_dev = soc_device_register(soc_dev_attr);
-	if (IS_ERR(soc_dev)) {
-		ret = PTR_ERR(soc_dev);
-		goto err_free_rev;
-	}
+	if (IS_ERR(soc_dev))
+		return PTR_ERR(soc_dev);
+
+	platform_set_drvdata(pdev, soc_dev);
 
 	dev_info(dev, "Family:%s rev:%s JTAGID[0x%08x] Detected\n",
 		 soc_dev_attr->family,
 		 soc_dev_attr->revision, jtag_id);
 
 	return 0;
+}
+
+static int k3_chipinfo_remove(struct platform_device *pdev)
+{
+	struct soc_device *soc_dev = platform_get_drvdata(pdev);
 
-err_free_rev:
-	kfree(soc_dev_attr->revision);
-err:
-	kfree(soc_dev_attr);
-	return ret;
+	if (soc_dev != NULL)
+		soc_device_unregister(soc_dev);
+
+	return 0;
 }
 
 static const struct of_device_id k3_chipinfo_of_match[] = {
@@ -148,6 +149,7 @@  static struct platform_driver k3_chipinfo_driver = {
 		.of_match_table = k3_chipinfo_of_match,
 	},
 	.probe = k3_chipinfo_probe,
+	.remove = k3_chipinfo_remove,
 };
 
 static int __init k3_chipinfo_init(void)