Free BD consistent memory while freeing the channel
i.e in free_chan_resources.

Signed-off-by: Radhey Shyam Pandey <radh...@xilinx.com>
Signed-off-by: Kedareswara rao Appana <appa...@xilinx.com>
---
Changes for v2:
--> None.

 drivers/dma/xilinx/xilinx_dma.c | 5 +++++
 1 file changed, 5 insertions(+)

diff --git a/drivers/dma/xilinx/xilinx_dma.c b/drivers/dma/xilinx/xilinx_dma.c
index 845e638..a9edbd8 100644
--- a/drivers/dma/xilinx/xilinx_dma.c
+++ b/drivers/dma/xilinx/xilinx_dma.c
@@ -764,6 +764,11 @@ static void xilinx_dma_free_chan_resources(struct dma_chan 
*dchan)
                INIT_LIST_HEAD(&chan->free_seg_list);
                spin_unlock_irqrestore(&chan->lock, flags);
 
+               /* Free memory that is allocated for BD */
+               dma_free_coherent(chan->dev, sizeof(*chan->seg_v) *
+                                 XILINX_DMA_NUM_DESCS, chan->seg_v,
+                                 chan->seg_p);
+
                /* Free Memory that is allocated for cyclic DMA Mode */
                dma_free_coherent(chan->dev, sizeof(*chan->cyclic_seg_v),
                                  chan->cyclic_seg_v, chan->cyclic_seg_p);
-- 
2.7.4

Reply via email to