lkml.org 
[lkml]   [2015]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
/
From
Subject[PATCH 0/5] dmaengine: Fix memory leak amongs virt-dma users
Date
Hi,

Due to the implementation of some of the drivers using virt-dma they leak memory
by design.
All it takes is to stop a transfer which is not yet completed, this includes
cyclic (audio) channels also.
These drivers tend to remove the vdesc->node from the virt-dma lists when they
start the transfer. In terminate all vchan_get_all_descriptors() will not find
the transfer which is still running (not in any of the lists) so the free_desc
callback will not be called on them leaving us with memory leak.

There are other drivers leaking memory IMHO, but I was not sure how to fix them:
sun6i-dma,
sa11x0-dma,
k3dma

Others are already doing something to prevent the leak by either directly
freeing the desc or by adding back the vdesc->node to a list.

Regards,
Peter
---
Peter Ujfalusi (4):
dmaengine: omap-dma: Fix memory leak when terminating running transfer
dmaengine: bcm2835-dma: Fix memory leak when stopping a running
transfer
dmaengine: hsu: Fix memory leak when stopping a running transfer
dmaengine: moxart-dma: Fix memory leak when stopping a running
transfer

Petr Kulhavy (1):
dmaengine: edma: fix memory leak when terminating running transfers

drivers/dma/bcm2835-dma.c | 1 +
drivers/dma/edma.c | 7 +++++++
drivers/dma/hsu/hsu.c | 5 ++++-
drivers/dma/moxart-dma.c | 4 +++-
drivers/dma/omap-dma.c | 1 +
5 files changed, 16 insertions(+), 2 deletions(-)

--
2.3.3



\
 
 \ /
  Last update: 2015-03-27 12:41    [W:0.102 / U:0.796 seconds]
©2003-2020 Jasper Spaans|hosted at Digital Ocean and TransIP|Read the blog|Advertise on this site