diff options
author | Peter Ujfalusi <peter.ujfalusi@ti.com> | 2015-03-27 07:35:53 -0400 |
---|---|---|
committer | Vinod Koul <vinod.koul@intel.com> | 2015-03-30 13:47:08 -0400 |
commit | f93178291712772983845700b12fc1c8b32f2eb1 (patch) | |
tree | b8751dda152f47d2048ce7d3f1998281c0d21127 | |
parent | 02d88b735f5a60f04dbf6d051b76e1877a0d0844 (diff) |
dmaengine: bcm2835-dma: Fix memory leak when stopping a running transfer
The vd->node is removed from the lists when the transfer started so the
vchan_get_all_descriptors() will not find it. This results memory leak.
Signed-off-by: Peter Ujfalusi <peter.ujfalusi@ti.com>
Acked-by: Stephen Warren <swarren@wwwdotorg.org>
Signed-off-by: Vinod Koul <vinod.koul@intel.com>
-rw-r--r-- | drivers/dma/bcm2835-dma.c | 1 |
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/dma/bcm2835-dma.c b/drivers/dma/bcm2835-dma.c index 0723096fb50a..c92d6a70ccf3 100644 --- a/drivers/dma/bcm2835-dma.c +++ b/drivers/dma/bcm2835-dma.c | |||
@@ -475,6 +475,7 @@ static int bcm2835_dma_terminate_all(struct dma_chan *chan) | |||
475 | * c->desc is NULL and exit.) | 475 | * c->desc is NULL and exit.) |
476 | */ | 476 | */ |
477 | if (c->desc) { | 477 | if (c->desc) { |
478 | bcm2835_dma_desc_free(&c->desc->vd); | ||
478 | c->desc = NULL; | 479 | c->desc = NULL; |
479 | bcm2835_dma_abort(c->chan_base); | 480 | bcm2835_dma_abort(c->chan_base); |
480 | 481 | ||