diff options
author | Julia Lawall <julia@diku.dk> | 2008-08-05 16:01:28 -0400 |
---|---|---|
committer | Linus Torvalds <torvalds@linux-foundation.org> | 2008-08-05 17:33:49 -0400 |
commit | 5394ba0fd892291eb425649fdbc82b673e0b7956 (patch) | |
tree | 4e3cf7193d796bd84619bcdecc3cad51c4151e81 /drivers/video/fsl-diu-fb.c | |
parent | 9bd6ceb666e76b9a3caefa158827a571ead55b6a (diff) |
drivers/video/fsl-diu-fb.c: add missing of_node_put
of_node_put is needed before discarding a value received from
of_find_node_by_type, eg in error handling code.
The semantic patch that makes the change is as follows:
(http://www.emn.fr/x-info/coccinelle/)
// <smpl>
@@
struct device_node *n;
struct device_node *n1;
struct device_node *n2;
statement S;
identifier f1,f2;
expression E1,E2;
constant C;
@@
n = of_find_node_by_type(...)
...
if (!n) S
... when != of_node_put(n)
when != n1 = f1(n,...)
when != E1 = n
when any
when strict
(
+ of_node_put(n);
return -C;
|
of_node_put(n);
|
n2 = f2(n,...)
|
E2 = n
|
return ...;
)
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: Krzysztof Helt <krzysztof.h1@wp.pl>
Cc: Timur Tabi <timur@freescale.com>
Cc: York Sun <yorksun@freescale.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
Diffstat (limited to 'drivers/video/fsl-diu-fb.c')
-rw-r--r-- | drivers/video/fsl-diu-fb.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/video/fsl-diu-fb.c b/drivers/video/fsl-diu-fb.c index 9cd36c223d33..bd320a2bfb7c 100644 --- a/drivers/video/fsl-diu-fb.c +++ b/drivers/video/fsl-diu-fb.c | |||
@@ -1649,8 +1649,10 @@ static int __init fsl_diu_init(void) | |||
1649 | } | 1649 | } |
1650 | 1650 | ||
1651 | prop = of_get_property(np, "d-cache-size", NULL); | 1651 | prop = of_get_property(np, "d-cache-size", NULL); |
1652 | if (prop == NULL) | 1652 | if (prop == NULL) { |
1653 | of_node_put(np); | ||
1653 | return -ENODEV; | 1654 | return -ENODEV; |
1655 | } | ||
1654 | 1656 | ||
1655 | /* Freescale PLRU requires 13/8 times the cache size to do a proper | 1657 | /* Freescale PLRU requires 13/8 times the cache size to do a proper |
1656 | displacement flush | 1658 | displacement flush |
@@ -1659,8 +1661,10 @@ static int __init fsl_diu_init(void) | |||
1659 | coherence_data_size /= 8; | 1661 | coherence_data_size /= 8; |
1660 | 1662 | ||
1661 | prop = of_get_property(np, "d-cache-line-size", NULL); | 1663 | prop = of_get_property(np, "d-cache-line-size", NULL); |
1662 | if (prop == NULL) | 1664 | if (prop == NULL) { |
1665 | of_node_put(np); | ||
1663 | return -ENODEV; | 1666 | return -ENODEV; |
1667 | } | ||
1664 | d_cache_line_size = *prop; | 1668 | d_cache_line_size = *prop; |
1665 | 1669 | ||
1666 | of_node_put(np); | 1670 | of_node_put(np); |