linux/drivers/macintosh
Nicolas Palix 44ea9c809d drivers/macintosh: Add missing of_node_put in therm_adt746x.c
of_node_put is needed before discarding a value received from
of_find_node_by_name, eg in error handling code or when the device node is
no longer used.

The semantic match that catches the bug is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@r exists@
local idexpression struct device_node *n;
position p1, p2;
struct device_node *n1;
statement S;
identifier f;
expression E;
expression *ptr != NULL;
@@

n@p1 = of_find_node_by_name(...)
...
if (!n) S
... when != of_node_put(n)
    when != n1 = f(n,...)
    when != E = n
    when any
    when strict
(
  return \(0\|<+...n...+>\|ptr\);
|
return@p2 ...;
|
  of_node_put(n);
|
  n1 = f(n,...)
|
  E = n
)

@script:python@
p1 << r.p1;
p2 << r.p2;
@@

print "* file: %s of_find_node_by_name %s return %s" % (p1[0].file,p1[0].line,p2[0].line)
// </smpl>

Signed-off-by: Nicolas Palix <npalix@diku.dk>
Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: Stephen Rothwell <sfr@canb.auug.org.au>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-01-06 15:59:18 -08:00
..
adb-iop.c
adb.c
adbhid.c
ans-lcd.c
ans-lcd.h
apm_emu.c
Kconfig
mac_hid.c
macio_asic.c
macio_sysfs.c
macio-adb.c
Makefile
mediabay.c
nvram.c
rack-meter.c rackmeter section fixes 2008-11-30 10:03:37 -08:00
smu.c
therm_adt746x.c drivers/macintosh: Add missing of_node_put in therm_adt746x.c 2009-01-06 15:59:18 -08:00
therm_pm72.c
therm_pm72.h
therm_windtunnel.c
via-cuda.c m68k: machw.h cleanup 2008-12-28 20:00:03 +01:00
via-macii.c m68k: machw.h cleanup 2008-12-28 20:00:03 +01:00
via-maciisi.c m68k: machw.h cleanup 2008-12-28 20:00:03 +01:00
via-pmu68k.c m68k: machw.h cleanup 2008-12-28 20:00:03 +01:00
via-pmu-backlight.c
via-pmu-event.c
via-pmu-event.h
via-pmu-led.c
via-pmu.c powerpc/mm: Split mmu_context handling 2008-12-21 14:21:15 +11:00
windfarm_core.c
windfarm_cpufreq_clamp.c
windfarm_lm75_sensor.c
windfarm_max6690_sensor.c
windfarm_pid.c
windfarm_pid.h
windfarm_pm81.c
windfarm_pm91.c
windfarm_pm112.c
windfarm_pm121.c
windfarm_smu_controls.c
windfarm_smu_sat.c powerpc/macintosh: Fix unsigned check in smu_sat_get_sdb_partition() 2008-12-03 21:04:02 +11:00
windfarm_smu_sensors.c
windfarm.h