aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorAmitoj Kaur Chawla <amitoj1606@gmail.com>2016-01-24 11:32:10 -0500
committerThierry Reding <treding@nvidia.com>2016-03-16 08:45:43 -0400
commit93ec302976c902a77f3163e192d73b0006e3575c (patch)
tree8f6f78ef86cdafd34ed27641a612c80dc2d16270
parent92e963f50fc74041b5e9e744c330dca48e04f08d (diff)
gpu: host1x: bus: Add missing of_node_put()
for_each_child_of_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_child_of_node(..., n) { ... when != of_node_put(n) when != e = n ( return n; | + of_node_put(n); ? return ...; ) ... } // </smpl> Signed-off-by: Amitoj Kaur Chawla <amitoj1606@gmail.com> Signed-off-by: Thierry Reding <treding@nvidia.com>
-rw-r--r--drivers/gpu/host1x/bus.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/host1x/bus.c b/drivers/gpu/host1x/bus.c
index da462afcb225..c2e7fba370bb 100644
--- a/drivers/gpu/host1x/bus.c
+++ b/drivers/gpu/host1x/bus.c
@@ -82,8 +82,10 @@ static int host1x_device_parse_dt(struct host1x_device *device,
82 if (of_match_node(driver->subdevs, np) && 82 if (of_match_node(driver->subdevs, np) &&
83 of_device_is_available(np)) { 83 of_device_is_available(np)) {
84 err = host1x_subdev_add(device, np); 84 err = host1x_subdev_add(device, np);
85 if (err < 0) 85 if (err < 0) {
86 of_node_put(np);
86 return err; 87 return err;
88 }
87 } 89 }
88 } 90 }
89 91