kernel_optimize_test/arch/powerpc
Nicolas Palix 29e931c02b powerpc/chrp: Add missing of_node_put in pci.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;
statement S1,S2;
expression E,E1;
expression *ptr != NULL;
@@

(
if (!(n@p1 = of_find_node_by_name(...))) S1
|
n@p1 = of_find_node_by_name(...)
)
<... when != of_node_put(n)
    when != if (...) { <+... of_node_put(n) ...+> }
    when != true !n  || ...
    when != n = E
    when != E = n
if (!n || ...) S2
...>
(
  return \(0\|<+...n...+>\|ptr\);
|
return@p2 ...;
|
n = E1
|
E1 = 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: Paul Mackerras <paulus@samba.org>
2008-12-16 14:39:32 +11:00
..
boot Merge branch 'merge' into next 2008-12-16 14:38:58 +11:00
configs Merge branch 'merge' into next 2008-12-16 14:38:58 +11:00
include/asm powerpc: Fix bogus cache flushing on all 40x and BookE processors v2 2008-12-15 14:29:37 -06:00
kernel Merge branch 'merge' into next 2008-12-16 14:38:58 +11:00
kvm KVM: ppc: stop leaking host memory on VM exit 2008-11-25 12:02:48 +02:00
lib powerpc: Update 64bit __copy_tofrom_user() using CPU_FTR_UNALIGNED_LD_STD 2008-11-19 16:04:54 +11:00
math-emu powerpc: Add SPE/EFP math emulation for E500v1/v2 processors. 2008-12-03 08:19:16 -06:00
mm Merge branch 'merge' into next 2008-12-16 14:38:58 +11:00
oprofile powerpc/cell/OProfile: Fix on-stack array size in activate spu profiling function 2008-10-31 16:13:51 +11:00
platforms powerpc/chrp: Add missing of_node_put in pci.c 2008-12-16 14:39:32 +11:00
sysdev powerpc/qe: Move cmxgcr_lock definition from the ucc.c into the qe.c 2008-12-03 10:47:36 -06:00
xmon powerpc: Fix compile errors with CONFIG_BUG=n 2008-10-31 21:34:09 +11:00
Kconfig powerpc: Add sync_*_for_* to dma_ops 2008-12-03 20:46:36 +11:00
Kconfig.debug powerpc: Allow the max stack trace depth to be configured 2008-12-03 20:46:35 +11:00
Makefile powerpc: Remove unncessary SPE related compiler flag 2008-12-03 08:19:10 -06:00