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 | ||
