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