linux/arch/powerpc/sysdev
Julia Lawall 7a626b66bb powerpc/ipic: introduce missing kfree
Error handling code following a kzalloc should free the allocated data.

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

// <smpl>
@r exists@
local idexpression x;
statement S;
expression E;
identifier f,f1,l;
position p1,p2;
expression *ptr != NULL;
@@

x@p1 = \(kmalloc\|kzalloc\|kcalloc\)(...);
...
if (x == NULL) S
<... when != x
     when != if (...) { <+...x...+> }
(
x->f1 = E
|
 (x->f1 == NULL || ...)
|
 f(...,x->f1,...)
)
...>
(
 return \(0\|<+...x...+>\|ptr\);
|
 return@p2 ...;
)

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

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

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Kumar Gala <galak@kernel.crashing.org>
Signed-off-by: Benjamin Herrenschmidt <benh@kernel.crashing.org>
2009-08-20 10:27:34 +10:00
..
bestcomm trivial: fix typos/grammar errors in Kconfig texts 2009-03-30 15:22:01 +02:00
qe_lib powerpc: Don't use alloc_bootmem() in init_IRQ() path 2009-07-08 13:50:25 +10:00
6xx-suspend.S [POWERPC] Add 6xx-style HID0_SLEEP support. 2008-05-16 23:22:28 +10:00
axonram.c block: Do away with the notion of hardsect_size 2009-05-22 23:22:54 +02:00
cpm1.c cpumask: remove references to struct irqaction's mask field. 2009-03-30 22:05:14 +10:30
cpm2_pic.c powerpc/cpm2: Fix set interrupt type 2009-02-06 10:44:02 -06:00
cpm2_pic.h
cpm2.c powerpc/cpm: Remove some cruft code and defines 2009-05-19 00:47:19 -05:00
cpm_common.c powerpc/mm: Tweak PTE bit combination definitions 2009-03-24 13:47:33 +11:00
dart_iommu.c powerpc/pseries: iommu enablement for CMO 2008-07-25 15:44:43 +10:00
dart.h
dcr-low.S powerpc/4xx: Extended DCR support v2 2008-12-21 14:21:15 +11:00
dcr.c powerpc: Const-qualify Device Node Argument to DCR Resource Extent API 2008-12-21 14:21:16 +11:00
fsl_gtm.c powerpc/sysdev: implement FSL GTM support 2008-06-10 10:38:50 -05:00
fsl_lbc.c [MTD] [NAND] FSL-UPM: add multi chip support 2009-04-06 07:17:09 -07:00
fsl_msi.c powerpc/fsl: Support unique MSI addresses per PCIe Root Complex 2009-05-19 00:50:38 -05:00
fsl_msi.h powerpc: Convert the FSL MSI code to use msi_bitmap 2008-08-20 16:34:58 +10:00
fsl_pci.c powerpc/pci: Clean up direct access to sysdata by FSL platforms 2009-05-21 15:44:22 +10:00
fsl_pci.h powerpc/fsl: Setup PCI inbound window based on actual amount of memory 2009-05-19 00:50:44 -05:00
fsl_rio.c powerpc/fsl_rio: Add kmalloc NULL tests 2009-08-20 10:27:17 +10:00
fsl_soc.c powerpc/fsl: use of_iomap() for rstcr mapping 2009-05-19 00:46:18 -05:00
fsl_soc.h powerpc/fsl_soc: isolate legacy fsl_spi support to mpc832x_rdb boards 2009-04-01 08:59:23 -07:00
grackle.c powerpc: Introduce ppc_pci_flags accessors 2008-12-16 15:53:16 +11:00
i8259.c powerpc: Fix irq_alloc_host() reference counting and callers 2008-06-09 13:51:16 +10:00
indirect_pci.c powerpc/pci: Clean up direct access to sysdata by indirect ops 2009-05-21 15:44:22 +10:00
ipic.c powerpc/ipic: introduce missing kfree 2009-08-20 10:27:34 +10:00
ipic.h
Kconfig powerpc: Move 8xxx GPIO Kconfig under the platform menu 2008-09-23 23:36:32 -05:00
Makefile powerpc/5xxx: Add common mpc5xxx_get_bus_frequency() function 2009-06-17 00:30:22 -06:00
micropatch.c [POWERPC] CPM: Rename commproc to cpm1 and cpm2_common.c to cpm2.c 2008-01-28 08:31:05 -06:00
mmio_nvram.c
mpc5xxx_clocks.c powerpc/5xxx: Add common mpc5xxx_get_bus_frequency() function 2009-06-17 00:30:22 -06:00
mpc8xx_pic.c [POWERPC] arch/powerpc/sysdev: Add missing of_node_put 2008-02-06 22:06:59 +11:00
mpc8xx_pic.h
mpc8xxx_gpio.c powerpc: gpio driver for mpc8349/8572/8610 and compatible 2008-09-23 10:41:16 -05:00
mpic_msi.c powerpc: Convert the MPIC MSI code to use msi_bitmap 2008-08-20 16:34:58 +10:00
mpic_pasemi_msi.c powerpc: Convert the MPIC MSI code to use msi_bitmap 2008-08-20 16:34:58 +10:00
mpic_u3msi.c powerpc: Convert the MPIC MSI code to use msi_bitmap 2008-08-20 16:34:58 +10:00
mpic.c powerpc/mpic: Fix MPIC_BROKEN_REGREAD on non broken MPICs 2009-08-20 10:12:22 +10:00
mpic.h irq: change ->set_affinity() to return status, fix 2009-05-06 07:55:33 +02:00
msi_bitmap.c powerpc/msi: Mark the MSI bitmap selftest code as __init 2009-03-24 13:47:28 +11:00
mv64x60_dev.c mv643xx_eth: remove force_phy_addr field 2008-09-05 06:33:59 +02:00
mv64x60_pci.c [POWERPC] mv64x60: Fix FDT compatible names: mv64x60 => mv64360 2008-04-15 21:21:24 +10:00
mv64x60_pic.c [POWERPC] mv64x60: Fix FDT compatible names: mv64x60 => mv64360 2008-04-15 21:21:24 +10:00
mv64x60_udbg.c [POWERPC] Fix mv64x60 early console code to use cell-index property 2008-04-24 20:57:34 +10:00
mv64x60.h
of_rtc.c [POWERPC] Enable RTC for Ebony and Walnut (v2) 2008-01-25 07:07:26 -06:00
pmi.c powerpc/pmi: Irq handlers return irqreturn_t 2009-03-24 13:47:30 +11:00
ppc4xx_gpio.c powerpc/4xx: Add PowerPC 4xx GPIO driver 2008-10-17 13:33:44 -04:00
ppc4xx_pci.c powerpc: Remove unnecessary semicolons 2009-07-08 13:50:21 +10:00
ppc4xx_pci.h [POWERPC] 4xx: Add 460EX PCIe support to 4xx pci driver 2008-03-26 07:19:16 -05:00
ppc4xx_soc.c [POWERPC] 4xx: Create common ppc4xx_reset_system() in ppc4xx_soc.c 2008-04-02 20:44:56 -05:00
rtc_cmos_setup.c powerpc: rtc_cmos_setup: assign interrupts only if there is i8259 PIC 2008-07-28 08:47:38 -05:00
simple_gpio.c powerpc: Implement GPIO driver for simple memory-mapped banks 2008-12-30 11:13:45 -06:00
simple_gpio.h powerpc: Implement GPIO driver for simple memory-mapped banks 2008-12-30 11:13:45 -06:00
tsi108_dev.c [POWERPC] Replace remaining __FUNCTION__ occurrences 2008-04-01 20:43:09 +11:00
tsi108_pci.c powerpc/pci: Clean up direct access to sysdata on tsi108 platforms 2009-05-21 15:44:23 +10:00
uic.c powerpc: Don't use alloc_bootmem() in init_IRQ() path 2009-07-08 13:50:25 +10:00
xilinx_intc.c powerpc/virtex: Add Xilinx ML510 reference design support 2009-06-06 10:15:24 -06:00
xilinx_pci.c powerpc/virtex: Add support for Xilinx PCI host bridge 2009-06-06 10:14:22 -06:00