aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorXuelin Shi <xuelin.shi@freescale.com>2014-07-01 16:32:38 +0800
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>2014-10-30 09:40:12 -0700
commit05054b34b017c696a163297c0db71c475b84ad31 (patch)
tree2ea7087fa3c60fb8a6076c46a476fe689dd94435
parent30d26f5c75a87d9477b1ad871fc4362b625df414 (diff)
dmaengine: fix xor sources continuation
commit 87cea76384257e6ac3fa4791b6a6b9d0335f7457 upstream. the partial xor result must be kept until the next tx is generated. Signed-off-by: Xuelin Shi <xuelin.shi@freescale.com> Signed-off-by: Dan Williams <dan.j.williams@intel.com> Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
-rw-r--r--crypto/async_tx/async_xor.c3
1 files changed, 1 insertions, 2 deletions
diff --git a/crypto/async_tx/async_xor.c b/crypto/async_tx/async_xor.c
index 3c562f5a60b..e1bce26cd4f 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);