+ list_for_each_entry_safe(mdesc, next, &list, node) {
enum dma_status llstat;
+ dma_async_tx_callback callback;
+ void *param;
desc = &mdesc->desc;
@@ -132,18 +135,19 @@ static void hidma_process_completed(struct hidma_chan *mchan)
spin_unlock_irqrestore(&mchan->lock, irqflags);
llstat = hidma_ll_status(mdma->lldev, mdesc->tre_ch);
- if (desc->callback && (llstat == DMA_COMPLETE))
- desc->callback(desc->callback_param);
+ callback = desc->callback;
+ param = desc->callback_param;