Commit 050ae645 authored by Federico Vaga's avatar Federico Vaga

sw:drv: invoke tx->callback only if really aborted

Signed-off-by: Federico Vaga's avatarFederico Vaga <federico.vaga@cern.ch>
parent 10f41750
...@@ -651,21 +651,18 @@ static int gn412x_dma_terminate_all(struct dma_chan *chan) ...@@ -651,21 +651,18 @@ static int gn412x_dma_terminate_all(struct dma_chan *chan)
} }
spin_unlock_irqrestore(&gn412x_dma_chan->lock, flags); spin_unlock_irqrestore(&gn412x_dma_chan->lock, flags);
if (!gn412x_dma_is_abort(gn412x_dma)) { if (gn412x_dma_is_abort(gn412x_dma)) {
dev_err(&gn412x_dma->pdev->dev, tx = to_gn412x_dma_chan(chan)->tx_curr;
"Failed to abort DMA transfer\n"); if (tx && tx->tx.callback_result) {
return -EINVAL; const struct dmaengine_result result = {
} .result = DMA_TRANS_ABORTED,
.residue = 0,
tx = to_gn412x_dma_chan(chan)->tx_curr; };
if (tx && tx->tx.callback_result) {
const struct dmaengine_result result = {
.result = DMA_TRANS_ABORTED,
.residue = 0,
};
tx->tx.callback_result(tx->tx.callback_param, &result); tx->tx.callback_result(tx->tx.callback_param, &result);
}
} }
gn412x_dma_tx_free(tx); gn412x_dma_tx_free(tx);
return 0; return 0;
......
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