lkml.org 
[lkml]   [2015]   [Mar]   [27]   [last100]   RSS Feed
Views: [wrap][no wrap]   [headers]  [forward] 
 
Messages in this thread
    Patch in this message
    /
    From
    Subject[PATCH 5/5] dmaengine: moxart-dma: Fix memory leak when stopping a running transfer
    Date
    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>
    CC: Jonas Jensen <jonas.jensen@gmail.com>
    ---
    drivers/dma/moxart-dma.c | 4 +++-
    1 file changed, 3 insertions(+), 1 deletion(-)

    diff --git a/drivers/dma/moxart-dma.c b/drivers/dma/moxart-dma.c
    index 15cab7d79525..b4634109e010 100644
    --- a/drivers/dma/moxart-dma.c
    +++ b/drivers/dma/moxart-dma.c
    @@ -193,8 +193,10 @@ static int moxart_terminate_all(struct dma_chan *chan)

    spin_lock_irqsave(&ch->vc.lock, flags);

    - if (ch->desc)
    + if (ch->desc) {
    + moxart_dma_desc_free(&ch->desc->vd);
    ch->desc = NULL;
    + }

    ctrl = readl(ch->base + REG_OFF_CTRL);
    ctrl &= ~(APB_DMA_ENABLE | APB_DMA_FIN_INT_EN | APB_DMA_ERR_INT_EN);
    --
    2.3.3


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