tree ea5831ca25e8468929baa37a0516a2da15f5b882
parent 8b9dba2ce28f64246198704b23f133bed5429e62
author Julia Lawall <julia@diku.dk> 1213014111 +1000
committer Paul Mackerras <paulus@samba.org> 1213592439 +1000

[POWERPC] Add missing of_node_put in drivers/macintosh/therm_adt746x.c

of_node_put is needed before discarding a value received from
of_find_node_by_name, 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;
statement S;
identifier f;
expression E;
constant C;
@@

n = of_find_node_by_name(...)
...
if (!n) S
... when != of_node_put(n)
    when != n1 = f(n,...)
    when != E = n
    when any
    when strict
(
+ of_node_put(n);
  return -C;
|
  of_node_put(n);
|
  n1 = f(n,...)
|
  E = n
|
  return ...;
)
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Paul Mackerras <paulus@samba.org>
