diff options
Diffstat (limited to 'crypto/async_tx/async_tx.c')
-rw-r--r-- | crypto/async_tx/async_tx.c | 9 |
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__); |