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
..
Kconfig [POWERPC] windfarm: Add PowerMac 12,1 support 2008-04-29 15:57:35 +10:00
Makefile [POWERPC] windfarm: Add PowerMac 12,1 support 2008-04-29 15:57:35 +10:00
adb-iop.c [POWERPC] Remove old includes from arch/ppc 2007-08-22 22:39:35 -05:00
adb.c device create: misc: convert device_create_drvdata to device_create 2008-10-16 09:24:43 -07:00
adbhid.c Merge master.kernel.org:/pub/scm/linux/kernel/git/torvalds/linux-2.6 into next 2008-07-21 00:55:14 -04:00
ans-lcd.c ans-lcd: BKL pushdown 2008-06-20 14:05:54 -06:00
ans-lcd.h [POWERPC] Copy over headers from arch/ppc to arch/powerpc that we need 2007-08-22 22:43:29 -05:00
apm_emu.c [POWERPC] apm_emu: Use generic apm-emulation 2007-05-02 16:42:19 +10:00
mac_hid.c mac-hid: fix build after lockdep annotation 2008-04-25 18:57:09 -07:00
macio-adb.c [POWERPC] Remove find_compatible_devices 2007-04-24 22:08:57 +10:00
macio_asic.c some kmalloc/memset ->kzalloc (tree wide) 2007-07-19 10:04:50 -07:00
macio_sysfs.c [POWERPC] Create modalias file in sysfs for of_platform bus 2008-05-14 22:31:28 +10:00
mediabay.c remove unnecessary <linux/hdreg.h> includes 2008-08-05 18:16:58 +02:00
nvram.c [PATCH] mark struct file_operations const 4 2007-02-12 09:48:45 -08:00
rack-meter.c rackmeter section fixes 2008-11-30 10:03:37 -08:00
smu.c Merge commit '85082fd7cbe3173198aac0eb5e85ab1edcc6352c' into test-build 2008-07-15 15:44:51 +10:00
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 macintosh: Use linux/of_{device,platform}.h instead of asm 2008-06-30 22:30:33 +10:00
therm_pm72.h [POWERPC] Xserve G5 thermal control fixes 2006-07-28 10:42:49 +10:00
therm_windtunnel.c macintosh/therm_windtunnel: Convert semaphore to mutex 2008-06-30 22:30:46 +10:00
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-pmu-backlight.c [POWERPC] Fix sleep on some powerbooks 2008-03-13 10:09:27 +11:00
via-pmu-event.c Input: via-pmu - add input device support 2006-06-26 01:49:55 -04:00
via-pmu-event.h Input: via-pmu - add input device support 2006-06-26 01:49:55 -04:00
via-pmu-led.c [POWERPC] via-pmu: remove LED sleep notifier 2007-05-08 11:54:19 +10:00
via-pmu.c powerpc/mm: Split mmu_context handling 2008-12-21 14:21:15 +11:00
via-pmu68k.c m68k: machw.h cleanup 2008-12-28 20:00:03 +01:00
windfarm.h [PATCH] powerpc: Thermal control for dual core G5s 2006-02-07 22:05:14 -08:00
windfarm_core.c [POWERPC] windfarm: Fix windfarm thread freezer interaction 2007-11-08 14:15:34 +11:00
windfarm_cpufreq_clamp.c Remove obsolete #include <linux/config.h> 2006-06-30 19:25:36 +02:00
windfarm_lm75_sensor.c [POWERPC] windfarm: Add PowerMac 12,1 support 2008-04-29 15:57:35 +10:00
windfarm_max6690_sensor.c [POWERPC] windfarm: Add PowerMac 12,1 support 2008-04-29 15:57:35 +10:00
windfarm_pid.c [PATCH] windfarm license fix 2006-03-06 18:40:45 -08:00
windfarm_pid.h [PATCH] powerpc: Thermal control for dual core G5s 2006-02-07 22:05:14 -08:00
windfarm_pm81.c [POWERPC] macintosh/windfarm: Fix platform driver hotplug/coldplug 2008-04-24 20:56:52 +10:00
windfarm_pm91.c [POWERPC] macintosh/windfarm: Fix platform driver hotplug/coldplug 2008-04-24 20:56:52 +10:00
windfarm_pm112.c [POWERPC] macintosh/windfarm: Fix platform driver hotplug/coldplug 2008-04-24 20:56:52 +10:00
windfarm_pm121.c [POWERPC] windfarm: Add PowerMac 12,1 support 2008-04-29 15:57:35 +10:00
windfarm_smu_controls.c [POWERPC] windfarm: Add PowerMac 12,1 support 2008-04-29 15:57:35 +10:00
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 [POWERPC] Rename get_property to of_get_property: partial drivers 2007-04-27 15:51:56 +10:00