linux/drivers/dma
Peter Ujfalusi 61086ac620 dmaengine: omap-dma: Fix memory leak when terminating running transfer
commit 02d88b735f upstream.

In omap_dma_start_desc the vdesc->node is removed from the virt-dma
framework managed lists (to be precise from the desc_issued list).
If a terminate_all comes before the transfer finishes the omap_desc will
not be freed up because it is not in any of the lists and we stopped the
DMA channel so the transfer will not going to complete.
There is no special sequence for leaking memory when using cyclic (audio)
transfer: with every start and stop of a cyclic transfer the driver leaks
struct omap_desc worth of memory.

Free up the allocated memory directly in omap_dma_terminate_all() since the
framework will not going to do that for us.

Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
CC: <linux-omap@vger.kernel.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
Signed-off-by: Luis Henriques <luis.henriques@canonical.com>
History 2015-04-13 16:48:59 +01:00
..
bestcomm drivers: clean-up prom.h implicit includes 2013-10-09 20:04:04 -05:00
dw dmaengine: dw: append MODULE_ALIAS for platform driver 2015-03-30 11:11:45 +01:00
ioat ioat: fix tasklet tear down 2014-02-25 09:44:20 -08:00
ipu dmaengine: ipu: fix warnings from 64-bit dma_addr_t printouts 2013-11-13 14:10:48 +05:30
ppc4xx Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2014-01-29 20:27:23 -08:00
sh dmaengine: sh: don't use dynamic static allocation 2014-06-03 11:35:33 +05:30
xilinx dma: Add Xilinx AXI Video Direct Memory Access Engine driver support 2014-04-30 10:44:13 +05:30
acpi-dma.c acpi-dma: convert to return error code when asked for channel 2014-02-11 23:30:50 +05:30
amba-pl08x.c dma: pl08x: Export pl08x_filter_id 2014-01-28 08:45:54 +05:30
at_hdmac.c dmaengine: at_hdmac: use tasklet_kill in teardown 2014-03-17 18:33:43 +05:30
at_hdmac_regs.h dmaengine: at_hdmac: remove unused function 2013-12-12 22:43:41 -08:00
bcm2835-dma.c dmaengine: Add DMA_PRIVATE to BCM2835 driver 2014-01-20 12:31:50 +05:30
coh901318.c dmaengine: coh901318: use DMA_COMPLETE for dma completion status 2013-10-25 11:15:56 +05:30
coh901318.h dma: coh901318: merge header files 2013-01-07 17:36:37 +01:00
coh901318_lli.c Merge branch 'next' of git://git.infradead.org/users/vkoul/slave-dma 2013-02-26 09:24:48 -08:00
cppi41.c dma: cppi41: handle 0-length packets 2014-07-01 12:15:48 +05:30
dma-jz4740.c dmaengine: jz4740: use DMA_COMPLETE for dma completion status 2013-10-25 11:15:58 +05:30
dmaengine.c dmaengine: fix dmaengine_unmap failure 2014-05-21 14:02:37 -07:00
dmaengine.h dmaengine: consolidate initialization of cookies 2012-03-13 11:37:22 +05:30
dmatest.c Add new line to test result strings produced in verbose mode 2014-03-26 11:41:45 +05:30
edma.c dmaengine: edma: fix memory leak when terminating running transfers 2015-04-13 16:48:58 +01:00
ep93xx_dma.c dmaengine: remove DMA unmap from drivers 2013-11-14 11:04:38 -08:00
fsl-edma.c dma: fix eDMA driver as a subsys_initcall 2014-04-16 12:03:47 +05:30
fsldma.c DMA: Freescale: move functions to avoid forward declarations 2014-05-02 22:17:43 +05:30
fsldma.h DMA: Freescale: change BWC from 256 bytes to 1024 bytes 2014-01-20 13:13:22 +05:30
imx-dma.c dma: imx-dma: Add missing module owner field 2014-03-06 20:51:09 +05:30
imx-sdma.c Update imx-sdma cyclic handling to report residue 2014-07-01 12:23:42 +05:30
intel_mid_dma.c dmaengine: intel_mid_dma: use DMA_COMPLETE for dma completion status 2013-10-25 11:16:04 +05:30
intel_mid_dma_regs.h dma: fix comments 2012-09-01 08:57:12 -07:00
iop-adma.c Merge commit 'dmaengine-3.13-v2' of git://git.kernel.org/pub/scm/linux/kernel/git/djbw/dmaengine 2013-11-16 12:02:36 +05:30
iovlock.c include cleanup: Update gfp.h and slab.h includes to prepare for breaking implicit slab.h inclusion from percpu.h 2010-03-30 22:02:32 +09:00
k3dma.c dmaengine: k3dma: fix sparse warnings 2014-01-20 13:53:20 +05:30
Kconfig Merge branch 'topic/xilinx' into for-linus 2014-06-09 21:56:29 +05:30
Makefile dma: Add Xilinx AXI Video Direct Memory Access Engine driver support 2014-04-30 10:44:13 +05:30
mmp_pdma.c dma: mmp_pdma: add support for residue reporting 2014-05-07 12:33:40 +05:30
mmp_tdma.c dma: mmp_tdma: move to generic device tree binding 2014-03-06 14:49:54 +05:30
moxart-dma.c dmaengine: Add MOXA ART DMA engine driver 2014-01-20 12:32:46 +05:30
mpc512x_dma.c dmaengine: mpc512x: add support for peripheral transfers 2014-05-22 10:37:01 +05:30
mv_xor.c dma: mv_xor: Flush descriptors before activating a channel 2014-05-21 14:02:35 -07:00
mv_xor.h dma: mv_xor: Fix mis-usage of mmio 'base' and 'high_base' registers 2013-11-14 11:04:42 -08:00
mxs-dma.c dma: mxs-dma: Use semaphores for cyclic DMA 2013-11-13 15:38:31 +05:30
of-dma.c dma: add channel request API that supports deferred probe 2013-12-10 17:46:48 +05:30
omap-dma.c dmaengine: omap-dma: Fix memory leak when terminating running transfer 2015-04-13 16:48:59 +01:00
pch_dma.c dmaengine: pch: fix compilation for alpha target 2014-05-22 18:50:49 +05:30
pl330.c Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2014-01-29 20:27:23 -08:00
qcom_bam_dma.c dmaengine: add Qualcomm BAM dma driver 2014-04-05 20:44:26 +05:30
s3c24xx-dma.c dmaengine: s3c24xx-dma: Add cyclic transfer support 2014-06-01 22:22:51 +05:30
sa11x0-dma.c dmaengine: sa11x0: remove broken #ifdef 2014-05-21 11:40:49 +05:30
sirf-dma.c dmaengine: sirf: off by one in of_dma_sirfsoc_xlate() 2014-04-16 11:59:24 +05:30
ste_dma40.c dma: ste_dma40: Convert to the late system PM callbacks 2014-05-07 15:32:07 +05:30
ste_dma40_ll.c dmaengine: ste_dma40_ll: Replace meaningless register set with comment 2013-06-04 11:12:10 +02:00
ste_dma40_ll.h dmaengine: ste_dma40: Remove unnecessary call to d40_phy_cfg() 2013-05-23 21:13:19 +02:00
tegra20-apb-dma.c Merge branch 'for-linus' of git://git.infradead.org/users/vkoul/slave-dma 2014-01-29 20:27:23 -08:00
timb_dma.c dmaengine: remove DMA unmap from drivers 2013-11-14 11:04:38 -08:00
TODO dmaengine: dw: don't perform DMA when dmaengine_submit is called 2014-10-05 13:41:11 -07:00
txx9dmac.c dma: fix build warnings in txx9 2013-12-12 22:43:41 -08:00
txx9dmac.h dmaengine: move last completed cookie into generic dma_chan structure 2012-03-13 11:36:06 +05:30
virt-dma.c dmaengine: virt-dma: add support for cyclic DMA periodic callbacks 2012-07-01 14:15:23 +01:00
virt-dma.h dma: fix vchan_cookie_complete() debug print 2014-01-26 17:33:45 +05:30