From: Srikanth Thokala <srikanth.thok...@xilinx.com>

The segment list in a descriptor should be checked for empty, else
it will try to access invalid address for the first call.  This
patch fixes this issue.

Signed-off-by: Srikanth Thokala <stho...@xilinx.com>
Signed-off-by: Michal Simek <michal.si...@xilinx.com>
---
 drivers/dma/xilinx/xilinx_vdma.c | 8 +++++---
 1 file changed, 5 insertions(+), 3 deletions(-)

Cc: dmaeng...@vger.kernel.org

diff --git a/drivers/dma/xilinx/xilinx_vdma.c b/drivers/dma/xilinx/xilinx_vdma.c
index 42a13e8..8e9f2a6 100644
--- a/drivers/dma/xilinx/xilinx_vdma.c
+++ b/drivers/dma/xilinx/xilinx_vdma.c
@@ -971,9 +971,11 @@ xilinx_vdma_dma_prep_interleaved(struct dma_chan *dchan,
                hw->buf_addr = xt->src_start;
 
        /* Link the previous next descriptor to current */
-       prev = list_last_entry(&desc->segments,
-                               struct xilinx_vdma_tx_segment, node);
-       prev->hw.next_desc = segment->phys;
+       if (!list_empty(&desc->segments)) {
+               prev = list_last_entry(&desc->segments,
+                                      struct xilinx_vdma_tx_segment, node);
+               prev->hw.next_desc = segment->phys;
+       }
 
        /* Insert the segment into the descriptor segments list. */
        list_add_tail(&segment->node, &desc->segments);
-- 
1.8.5.5

--
To unsubscribe from this list: send the line "unsubscribe linux-media" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to