The use of the __free macro allows the cleanup to be based on scope
instead of on another function called later. This makes the cleanup
automatic and less susceptible to errors later.
Signed-off-by: David Hunter <david.hunter.linux@gmail.com>
[mpe: Fix over-long line & change log wording]
Signed-off-by: Michael Ellerman <mpe@ellerman.id.au>
Link: https://patch.msgid.link/20240709143553.117053-1-david.hunter.linux@gmail.com
 
 
 static void __init km82xx_pic_init(void)
 {
-       struct device_node *np = of_find_compatible_node(NULL, NULL,
-                                                       "fsl,pq2-pic");
+       struct device_node *np __free(device_node);
+       np = of_find_compatible_node(NULL, NULL, "fsl,pq2-pic");
+
        if (!np) {
                pr_err("PIC init: can not find cpm-pic node\n");
                return;
        }
 
        cpm2_pic_init(np);
-       of_node_put(np);
 }
 
 struct cpm_pin {