macintosh/macio-adb: replace of_node_put() with __free
authorsundar <prosunofficial@gmail.com>
Wed, 24 Apr 2024 15:07:18 +0000 (20:37 +0530)
committerMichael Ellerman <mpe@ellerman.id.au>
Tue, 30 Apr 2024 11:53:13 +0000 (21:53 +1000)
use the new cleanup magic to replace of_node_put() with
__free(device_node) marking to auto release when they get out of scope.

Suggested-by: Julia Lawall <julia.lawall@inria.fr>
Signed-off-by: sundar <prosunofficial@gmail.com>
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://msgid.link/20240424150718.5006-1-prosunofficial@gmail.com
drivers/macintosh/macio-adb.c

index 779f1268286eb5e693b1593dd3cd2e494ca38f37..19c63959ebed9d56a5a471c2c32817cb756d9b51 100644 (file)
@@ -83,35 +83,32 @@ struct adb_driver macio_adb_driver = {
 
 int macio_probe(void)
 {
-       struct device_node *np;
+       struct device_node *np __free(device_node) =
+               of_find_compatible_node(NULL, "adb", "chrp,adb0");
 
-       np = of_find_compatible_node(NULL, "adb", "chrp,adb0");
-       if (np) {
-               of_node_put(np);
+       if (np)
                return 0;
-       }
+
        return -ENODEV;
 }
 
 int macio_init(void)
 {
-       struct device_node *adbs;
+       struct device_node *adbs __free(device_node) =
+               of_find_compatible_node(NULL, "adb", "chrp,adb0");
        struct resource r;
        unsigned int irq;
 
-       adbs = of_find_compatible_node(NULL, "adb", "chrp,adb0");
        if (!adbs)
                return -ENXIO;
 
-       if (of_address_to_resource(adbs, 0, &r)) {
-               of_node_put(adbs);
+       if (of_address_to_resource(adbs, 0, &r))
                return -ENXIO;
-       }
+
        adb = ioremap(r.start, sizeof(struct adb_regs));
-       if (!adb) {
-               of_node_put(adbs);
+       if (!adb)
                return -ENOMEM;
-       }
+
 
        out_8(&adb->ctrl.r, 0);
        out_8(&adb->intr.r, 0);
@@ -121,7 +118,6 @@ int macio_init(void)
        out_8(&adb->autopoll.r, APE);
 
        irq = irq_of_parse_and_map(adbs, 0);
-       of_node_put(adbs);
        if (request_irq(irq, macio_adb_interrupt, 0, "ADB", (void *)0)) {
                iounmap(adb);
                printk(KERN_ERR "ADB: can't get irq %d\n", irq);