diff options
author | Xuelin Shi <xuelin.shi@freescale.com> | 2014-07-01 04:32:38 -0400 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2014-08-21 13:20:52 -0400 |
commit | 87cea76384257e6ac3fa4791b6a6b9d0335f7457 (patch) | |
tree | 0c7d5c7d5ae3989303533cb9f20a8c711425b2d4 | |
parent | fbeec99ad5c03060ba71c470ac373e24e23a80e0 (diff) |
dmaengine: fix xor sources continuation
the partial xor result must be kept until the next
tx is generated.
Cc: <stable@vger.kernel.org>
Signed-off-by: Xuelin Shi <xuelin.shi@freescale.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
-rw-r--r-- | crypto/async_tx/async_xor.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/crypto/async_tx/async_xor.c b/crypto/async_tx/async_xor.c index 3c562f5a60bb..e1bce26cd4f9 100644 --- a/crypto/async_tx/async_xor.c +++ b/crypto/async_tx/async_xor.c | |||
@@ -78,8 +78,6 @@ do_async_xor(struct dma_chan *chan, struct dmaengine_unmap_data *unmap, | |||
78 | tx = dma->device_prep_dma_xor(chan, dma_dest, src_list, | 78 | tx = dma->device_prep_dma_xor(chan, dma_dest, src_list, |
79 | xor_src_cnt, unmap->len, | 79 | xor_src_cnt, unmap->len, |
80 | dma_flags); | 80 | dma_flags); |
81 | src_list[0] = tmp; | ||
82 | |||
83 | 81 | ||
84 | if (unlikely(!tx)) | 82 | if (unlikely(!tx)) |
85 | async_tx_quiesce(&submit->depend_tx); | 83 | async_tx_quiesce(&submit->depend_tx); |
@@ -92,6 +90,7 @@ do_async_xor(struct dma_chan *chan, struct dmaengine_unmap_data *unmap, | |||
92 | xor_src_cnt, unmap->len, | 90 | xor_src_cnt, unmap->len, |
93 | dma_flags); | 91 | dma_flags); |
94 | } | 92 | } |
93 | src_list[0] = tmp; | ||
95 | 94 | ||
96 | dma_set_unmap(tx, unmap); | 95 | dma_set_unmap(tx, unmap); |
97 | async_tx_submit(chan, tx, submit); | 96 | async_tx_submit(chan, tx, submit); |