@@ -967,6 +967,11 @@ static void axi_chan_block_xfer_complete(struct axi_dma_chan *chan)
/* The completed descriptor currently is in the head of vc list */
vd = vchan_next_desc(&chan->vc);
+ if (!vd) {
+ spin_unlock_irqrestore(&chan->vc.lock, flags);
+ return;
+ }
+
if (chan->cyclic) {
desc = vd_to_axi_desc(vd);
if (desc) {