diff options
author | Xuelin Shi <xuelin.shi@freescale.com> | 2014-07-01 16:32:38 +0800 |
---|---|---|
committer | Dan Williams <dan.j.williams@intel.com> | 2014-08-21 10:20:52 -0700 |
commit | 87cea76384257e6ac3fa4791b6a6b9d0335f7457 (patch) | |
tree | 0c7d5c7d5ae3989303533cb9f20a8c711425b2d4 /crypto/async_tx/async_xor.c | |
parent | fbeec99ad5c03060ba71c470ac373e24e23a80e0 (diff) | |
download | lwn-87cea76384257e6ac3fa4791b6a6b9d0335f7457.tar.gz lwn-87cea76384257e6ac3fa4791b6a6b9d0335f7457.zip |
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>
Diffstat (limited to 'crypto/async_tx/async_xor.c')
-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, tx = dma->device_prep_dma_xor(chan, dma_dest, src_list, xor_src_cnt, unmap->len, dma_flags); - src_list[0] = tmp; - if (unlikely(!tx)) async_tx_quiesce(&submit->depend_tx); @@ -92,6 +90,7 @@ do_async_xor(struct dma_chan *chan, struct dmaengine_unmap_data *unmap, xor_src_cnt, unmap->len, dma_flags); } + src_list[0] = tmp; dma_set_unmap(tx, unmap); async_tx_submit(chan, tx, submit); |