Re: [PATCH v3 09/20] iommu/fsl: use platform_device_set_of_node()
From: Frank Li
Date: Mon Jul 06 2026 - 11:16:17 EST
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 <robin.murphy@xxxxxxx>
> Reviewed-by: Andy Shevchenko <andriy.shevchenko@xxxxxxxxxxxxxxx>
> Signed-off-by: Bartosz Golaszewski <bartosz.golaszewski@xxxxxxxxxxxxxxxx>
> ---
Reviewed-by: Frank Li <Frank.Li@xxxxxxx>
> 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
>
>