On Mon, Jul 06, 2026 at 02:44:21PM +0200, Bartosz Golaszewski wrote: > Ahead of reworking the reference counting logic for platform devices, > encapsulate the assignment of the OF node for dynamically allocated > platform devices with the provided helper. > > Acked-by: Robin Murphy <[email protected]> > Reviewed-by: Andy Shevchenko <[email protected]> > Signed-off-by: Bartosz Golaszewski <[email protected]> > ---
Reviewed-by: Frank Li <[email protected]> > drivers/iommu/fsl_pamu.c | 16 ++++++---------- > 1 file changed, 6 insertions(+), 10 deletions(-) > > diff --git a/drivers/iommu/fsl_pamu.c b/drivers/iommu/fsl_pamu.c > index > 25aa477a95a95cb4fa4e132727cde0a936750ee2..c83bbc3faad56d6ee1c89b0a7f74028af02c81e9 > 100644 > --- a/drivers/iommu/fsl_pamu.c > +++ b/drivers/iommu/fsl_pamu.c > @@ -8,6 +8,7 @@ > > #include "fsl_pamu.h" > > +#include <linux/cleanup.h> > #include <linux/fsl/guts.h> > #include <linux/interrupt.h> > #include <linux/genalloc.h> > @@ -933,7 +934,6 @@ static struct platform_driver fsl_of_pamu_driver = { > static __init int fsl_pamu_init(void) > { > struct platform_device *pdev = NULL; > - struct device_node *np; > int ret; > > /* > @@ -955,7 +955,8 @@ static __init int fsl_pamu_init(void) > * PAMU node would require significant changes to a lot of code. > */ > > - np = of_find_compatible_node(NULL, NULL, "fsl,pamu"); > + struct device_node *np __free(device_node) = > + of_find_compatible_node(NULL, NULL, "fsl,pamu"); > if (!np) { > pr_err("could not find a PAMU node\n"); > return -ENODEV; > @@ -964,7 +965,7 @@ static __init int fsl_pamu_init(void) > ret = platform_driver_register(&fsl_of_pamu_driver); > if (ret) { > pr_err("could not register driver (err=%i)\n", ret); > - goto error_driver_register; > + return ret; > } > > pdev = platform_device_alloc("fsl-of-pamu", 0); > @@ -973,7 +974,8 @@ static __init int fsl_pamu_init(void) > ret = -ENOMEM; > goto error_device_alloc; > } > - pdev->dev.of_node = of_node_get(np); > + > + platform_device_set_of_node(pdev, np); > > ret = pamu_domain_init(); > if (ret) > @@ -988,17 +990,11 @@ static __init int fsl_pamu_init(void) > return 0; > > error_device_add: > - of_node_put(pdev->dev.of_node); > - pdev->dev.of_node = NULL; > - > platform_device_put(pdev); > > error_device_alloc: > platform_driver_unregister(&fsl_of_pamu_driver); > > -error_driver_register: > - of_node_put(np); > - > return ret; > } > arch_initcall(fsl_pamu_init); > > -- > 2.47.3 > >
