diff options
Diffstat (limited to 'crypto/async_tx/async_pq.c')
-rw-r--r-- | crypto/async_tx/async_pq.c | 5 |
1 files changed, 5 insertions, 0 deletions
diff --git a/crypto/async_tx/async_pq.c b/crypto/async_tx/async_pq.c index 108b21efb499..a25e290c39fb 100644 --- a/crypto/async_tx/async_pq.c +++ b/crypto/async_tx/async_pq.c | |||
@@ -101,6 +101,7 @@ do_async_gen_syndrome(struct dma_chan *chan, struct page **blocks, | |||
101 | */ | 101 | */ |
102 | if (src_cnt > pq_src_cnt) { | 102 | if (src_cnt > pq_src_cnt) { |
103 | submit->flags &= ~ASYNC_TX_ACK; | 103 | submit->flags &= ~ASYNC_TX_ACK; |
104 | submit->flags |= ASYNC_TX_FENCE; | ||
104 | dma_flags |= DMA_COMPL_SKIP_DEST_UNMAP; | 105 | dma_flags |= DMA_COMPL_SKIP_DEST_UNMAP; |
105 | submit->cb_fn = NULL; | 106 | submit->cb_fn = NULL; |
106 | submit->cb_param = NULL; | 107 | submit->cb_param = NULL; |
@@ -111,6 +112,8 @@ do_async_gen_syndrome(struct dma_chan *chan, struct page **blocks, | |||
111 | if (cb_fn_orig) | 112 | if (cb_fn_orig) |
112 | dma_flags |= DMA_PREP_INTERRUPT; | 113 | dma_flags |= DMA_PREP_INTERRUPT; |
113 | } | 114 | } |
115 | if (submit->flags & ASYNC_TX_FENCE) | ||
116 | dma_flags |= DMA_PREP_FENCE; | ||
114 | 117 | ||
115 | /* Since we have clobbered the src_list we are committed | 118 | /* Since we have clobbered the src_list we are committed |
116 | * to doing this asynchronously. Drivers force forward | 119 | * to doing this asynchronously. Drivers force forward |
@@ -282,6 +285,8 @@ async_syndrome_val(struct page **blocks, unsigned int offset, int disks, | |||
282 | dma_flags |= DMA_PREP_PQ_DISABLE_P; | 285 | dma_flags |= DMA_PREP_PQ_DISABLE_P; |
283 | if (!Q(blocks, disks)) | 286 | if (!Q(blocks, disks)) |
284 | dma_flags |= DMA_PREP_PQ_DISABLE_Q; | 287 | dma_flags |= DMA_PREP_PQ_DISABLE_Q; |
288 | if (submit->flags & ASYNC_TX_FENCE) | ||
289 | dma_flags |= DMA_PREP_FENCE; | ||
285 | for (i = 0; i < disks; i++) | 290 | for (i = 0; i < disks; i++) |
286 | if (likely(blocks[i])) { | 291 | if (likely(blocks[i])) { |
287 | BUG_ON(is_raid6_zero_block(blocks[i])); | 292 | BUG_ON(is_raid6_zero_block(blocks[i])); |