diff options
author | Julia Lawall <Julia.Lawall@lip6.fr> | 2015-10-24 16:42:31 +0200 |
---|---|---|
committer | Thierry Reding <treding@nvidia.com> | 2015-12-14 11:40:55 +0100 |
commit | cf6b17445dbf6c287fc389c9a9cb2276984b6a5f (patch) | |
tree | d3910baf779b48832e402a9b18d890c571d57aba /drivers/gpu/drm/tegra/dc.c | |
parent | 986c58d1625df222c6148c1dc72e59fbf96ef75e (diff) | |
download | linux-cf6b17445dbf6c287fc389c9a9cb2276984b6a5f.tar.gz linux-cf6b17445dbf6c287fc389c9a9cb2276984b6a5f.tar.bz2 linux-cf6b17445dbf6c287fc389c9a9cb2276984b6a5f.zip |
drm/tegra: dc: Add missing of_node_put()
for_each_matching_node() performs an of_node_get() on each iteration, so
a break out of the loop requires an of_node_put().
A simplified version of the semantic patch that fixes this problem is as
follows (http://coccinelle.lip6.fr):
// <smpl>
@@
local idexpression n;
expression e;
@@
for_each_matching_node(n,...) {
...
(
of_node_put(n);
|
e = n
|
+ of_node_put(n);
? break;
)
...
}
... when != n
// </smpl>
Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Thierry Reding <treding@nvidia.com>
Diffstat (limited to 'drivers/gpu/drm/tegra/dc.c')
-rw-r--r-- | drivers/gpu/drm/tegra/dc.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/drivers/gpu/drm/tegra/dc.c b/drivers/gpu/drm/tegra/dc.c index e9f24a85a103..ea174b5a649d 100644 --- a/drivers/gpu/drm/tegra/dc.c +++ b/drivers/gpu/drm/tegra/dc.c @@ -1952,8 +1952,10 @@ static int tegra_dc_parse_dt(struct tegra_dc *dc) * cases where only a single display controller is used. */ for_each_matching_node(np, tegra_dc_of_match) { - if (np == dc->dev->of_node) + if (np == dc->dev->of_node) { + of_node_put(np); break; + } value++; } |