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
>
>

Reply via email to