Commit 049c0d57 authored by Srikanth Thokala's avatar Srikanth Thokala Committed by Vinod Koul

dmaengine: xilinx: vdma: Check if the segment list is empty in a descriptor

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: default avatarSrikanth Thokala <sthokal@xilinx.com>
Signed-off-by: default avatarMichal Simek <michal.simek@xilinx.com>
Signed-off-by: default avatarVinod Koul <vinod.koul@intel.com>
parent cd166280
...@@ -971,9 +971,11 @@ xilinx_vdma_dma_prep_interleaved(struct dma_chan *dchan, ...@@ -971,9 +971,11 @@ xilinx_vdma_dma_prep_interleaved(struct dma_chan *dchan,
hw->buf_addr = xt->src_start; hw->buf_addr = xt->src_start;
/* Link the previous next descriptor to current */ /* Link the previous next descriptor to current */
prev = list_last_entry(&desc->segments, if (!list_empty(&desc->segments)) {
struct xilinx_vdma_tx_segment, node); prev = list_last_entry(&desc->segments,
prev->hw.next_desc = segment->phys; struct xilinx_vdma_tx_segment, node);
prev->hw.next_desc = segment->phys;
}
/* Insert the segment into the descriptor segments list. */ /* Insert the segment into the descriptor segments list. */
list_add_tail(&segment->node, &desc->segments); list_add_tail(&segment->node, &desc->segments);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment