.. | .. |
---|
551 | 551 | |
---|
552 | 552 | /* The bad descriptor currently is in the head of vc list */ |
---|
553 | 553 | vd = vchan_next_desc(&chan->vc); |
---|
| 554 | + if (!vd) { |
---|
| 555 | + dev_err(chan2dev(chan), "BUG: %s, IRQ with no descriptors\n", |
---|
| 556 | + axi_chan_name(chan)); |
---|
| 557 | + goto out; |
---|
| 558 | + } |
---|
554 | 559 | /* Remove the completed descriptor from issued list */ |
---|
555 | 560 | list_del(&vd->node); |
---|
556 | 561 | |
---|
.. | .. |
---|
565 | 570 | /* Try to restart the controller */ |
---|
566 | 571 | axi_chan_start_first_queued(chan); |
---|
567 | 572 | |
---|
| 573 | +out: |
---|
568 | 574 | spin_unlock_irqrestore(&chan->vc.lock, flags); |
---|
569 | 575 | } |
---|
570 | 576 | |
---|