mmc: atmel-mci: add missing of_node_put
authorJulia Lawall <Julia.Lawall@inria.fr>
Thu, 7 Sep 2023 09:55:15 +0000 (11:55 +0200)
committerUlf Hansson <ulf.hansson@linaro.org>
Tue, 26 Sep 2023 13:12:44 +0000 (15:12 +0200)
for_each_child_of_node performs an of_node_get on each
iteration, so a break out of the loop requires an
of_node_put.

This was done using the Coccinelle semantic patch
iterators/for_each_child.cocci

Signed-off-by: Julia Lawall <Julia.Lawall@inria.fr>
Link: https://lore.kernel.org/r/20230907095521.14053-6-Julia.Lawall@inria.fr
Signed-off-by: Ulf Hansson <ulf.hansson@linaro.org>
drivers/mmc/host/atmel-mci.c

index 535783c..14401a5 100644 (file)
@@ -674,8 +674,10 @@ atmci_of_init(struct platform_device *pdev)
                                              "cd", GPIOD_IN, "cd-gpios");
                err = PTR_ERR_OR_ZERO(pdata->slot[slot_id].detect_pin);
                if (err) {
-                       if (err != -ENOENT)
+                       if (err != -ENOENT) {
+                               of_node_put(cnp);
                                return ERR_PTR(err);
+                       }
                        pdata->slot[slot_id].detect_pin = NULL;
                }
 
@@ -687,8 +689,10 @@ atmci_of_init(struct platform_device *pdev)
                                              "wp", GPIOD_IN, "wp-gpios");
                err = PTR_ERR_OR_ZERO(pdata->slot[slot_id].wp_pin);
                if (err) {
-                       if (err != -ENOENT)
+                       if (err != -ENOENT) {
+                               of_node_put(cnp);
                                return ERR_PTR(err);
+                       }
                        pdata->slot[slot_id].wp_pin = NULL;
                }
        }