aboutsummaryrefslogtreecommitdiffstats
path: root/crypto/async_tx/async_tx.c
diff options
context:
space:
mode:
Diffstat (limited to 'crypto/async_tx/async_tx.c')
-rw-r--r--crypto/async_tx/async_tx.c9
1 files changed, 5 insertions, 4 deletions
diff --git a/crypto/async_tx/async_tx.c b/crypto/async_tx/async_tx.c
index 69756164b61d..c6e772fc5ccd 100644
--- a/crypto/async_tx/async_tx.c
+++ b/crypto/async_tx/async_tx.c
@@ -446,7 +446,7 @@ async_tx_channel_switch(struct dma_async_tx_descriptor *depend_tx,
446 * otherwise poll for completion 446 * otherwise poll for completion
447 */ 447 */
448 if (dma_has_cap(DMA_INTERRUPT, device->cap_mask)) 448 if (dma_has_cap(DMA_INTERRUPT, device->cap_mask))
449 intr_tx = device->device_prep_dma_interrupt(chan); 449 intr_tx = device->device_prep_dma_interrupt(chan, 0);
450 else 450 else
451 intr_tx = NULL; 451 intr_tx = NULL;
452 452
@@ -515,7 +515,8 @@ async_tx_submit(struct dma_chan *chan, struct dma_async_tx_descriptor *tx,
515 * 2/ dependencies are 1:1 i.e. two transactions can 515 * 2/ dependencies are 1:1 i.e. two transactions can
516 * not depend on the same parent 516 * not depend on the same parent
517 */ 517 */
518 BUG_ON(depend_tx->ack || depend_tx->next || tx->parent); 518 BUG_ON(async_tx_test_ack(depend_tx) || depend_tx->next ||
519 tx->parent);
519 520
520 /* the lock prevents async_tx_run_dependencies from missing 521 /* the lock prevents async_tx_run_dependencies from missing
521 * the setting of ->next when ->parent != NULL 522 * the setting of ->next when ->parent != NULL
@@ -594,7 +595,7 @@ async_trigger_callback(enum async_tx_flags flags,
594 if (device && !dma_has_cap(DMA_INTERRUPT, device->cap_mask)) 595 if (device && !dma_has_cap(DMA_INTERRUPT, device->cap_mask))
595 device = NULL; 596 device = NULL;
596 597
597 tx = device ? device->device_prep_dma_interrupt(chan) : NULL; 598 tx = device ? device->device_prep_dma_interrupt(chan, 0) : NULL;
598 } else 599 } else
599 tx = NULL; 600 tx = NULL;
600 601
@@ -610,7 +611,7 @@ async_trigger_callback(enum async_tx_flags flags,
610 /* if ack is already set then we cannot be sure 611 /* if ack is already set then we cannot be sure
611 * we are referring to the correct operation 612 * we are referring to the correct operation
612 */ 613 */
613 BUG_ON(depend_tx->ack); 614 BUG_ON(async_tx_test_ack(depend_tx));
614 if (dma_wait_for_async_tx(depend_tx) == DMA_ERROR) 615 if (dma_wait_for_async_tx(depend_tx) == DMA_ERROR)
615 panic("%s: DMA_ERROR waiting for depend_tx\n", 616 panic("%s: DMA_ERROR waiting for depend_tx\n",
616 __func__); 617 __func__);