diff options
author | Amitoj Kaur Chawla <amitoj1606@gmail.com> | 2016-01-24 22:02:10 +0530 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2016-03-16 13:45:43 +0100 |
commit | 93ec302976c902a77f3163e192d73b0006e3575c (patch) | |
tree | 8f6f78ef86cdafd34ed27641a612c80dc2d16270 /drivers | |
parent | 92e963f50fc74041b5e9e744c330dca48e04f08d (diff) | |
download | linux-stable-93ec302976c902a77f3163e192d73b0006e3575c.tar.gz linux-stable-93ec302976c902a77f3163e192d73b0006e3575c.tar.bz2 linux-stable-93ec302976c902a77f3163e192d73b0006e3575c.zip |
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>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/gpu/host1x/bus.c | 4 |
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, if (of_match_node(driver->subdevs, np) && of_device_is_available(np)) { err = host1x_subdev_add(device, np); - if (err < 0) + if (err < 0) { + of_node_put(np); return err; + } } } |