aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmitoj Kaur Chawla <amitoj1606@gmail.com>2016-01-22 13:08:38 -0500
committerSudeep Holla <sudeep.holla@arm.com>2016-02-01 04:59:58 -0500
commitd99875eebfebec5432981273fac0547f3e34f2d7 (patch)
treef6c63bbad0821b3dc0d4ddceb4a7a1fce2a8b354
parent36f90b0a2ddd60823fe193a85e60ff1906c2a9b3 (diff)
bus: vexpress-config: Add missing of_node_put
for_each_compatible_node performs an of_node_get on each iteration, so to break out of the loop an of_node_put is required. Found using Coccinelle. The semantic patch used for this is as follows: // <smpl> @@ expression e; local idexpression n; @@ for_each_compatible_node(n, ...) { ... when != of_node_put(n) when != e = n ( return n; + of_node_put(n); ? return ...; ) ... } // </smpl> Acked-by: Liviu Dudau <Liviu.Dudau@arm.com> Signed-off-by: Amitoj Kaur Chawla <amitoj1606@gmail.com> Signed-off-by: Sudeep Holla <sudeep.holla@arm.com>
-rw-r--r--drivers/bus/vexpress-config.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/bus/vexpress-config.c b/drivers/bus/vexpress-config.c
index 6575c0fe6a4e..c3cb76b363c6 100644
--- a/drivers/bus/vexpress-config.c
+++ b/drivers/bus/vexpress-config.c
@@ -192,8 +192,10 @@ static int __init vexpress_config_init(void)
192 /* Need the config devices early, before the "normal" devices... */ 192 /* Need the config devices early, before the "normal" devices... */
193 for_each_compatible_node(node, NULL, "arm,vexpress,config-bus") { 193 for_each_compatible_node(node, NULL, "arm,vexpress,config-bus") {
194 err = vexpress_config_populate(node); 194 err = vexpress_config_populate(node);
195 if (err) 195 if (err) {
196 of_node_put(node);
196 break; 197 break;
198 }
197 } 199 }
198 200
199 return err; 201 return err;