aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMogens Lauridsen <mlauridsen171@gmail.com>2017-08-03 09:34:12 -0400
committerHerbert Xu <herbert@gondor.apana.org.au>2017-08-17 04:53:26 -0400
commit1e3204104cf7f608e90bc824523aaa8129ea944a (patch)
tree34c83a4b7cc4d70b527482ff503286cd67bfe726
parent2d97591ef43d0587be22ad1b0d758d6df4999a0b (diff)
crypto: sahara - Fix dma unmap direction
The direction used in dma_unmap_sg in aes calc is wrong. This result in the cache not being invalidated correct when aes calculation is done and result has been dma'ed to memory. This is seen as sporadic wrong result from aes calc. Signed-off-by: Mogens Lauridsen <mlauridsen171@gmail.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--drivers/crypto/sahara.c8
1 files changed, 4 insertions, 4 deletions
diff --git a/drivers/crypto/sahara.c b/drivers/crypto/sahara.c
index c2174ec88e2a..474da36bdd2c 100644
--- a/drivers/crypto/sahara.c
+++ b/drivers/crypto/sahara.c
@@ -543,10 +543,10 @@ static int sahara_hw_descriptor_create(struct sahara_dev *dev)
543 543
544unmap_out: 544unmap_out:
545 dma_unmap_sg(dev->device, dev->out_sg, dev->nb_out_sg, 545 dma_unmap_sg(dev->device, dev->out_sg, dev->nb_out_sg,
546 DMA_TO_DEVICE); 546 DMA_FROM_DEVICE);
547unmap_in: 547unmap_in:
548 dma_unmap_sg(dev->device, dev->in_sg, dev->nb_in_sg, 548 dma_unmap_sg(dev->device, dev->in_sg, dev->nb_in_sg,
549 DMA_FROM_DEVICE); 549 DMA_TO_DEVICE);
550 550
551 return -EINVAL; 551 return -EINVAL;
552} 552}
@@ -594,9 +594,9 @@ static int sahara_aes_process(struct ablkcipher_request *req)
594 } 594 }
595 595
596 dma_unmap_sg(dev->device, dev->out_sg, dev->nb_out_sg, 596 dma_unmap_sg(dev->device, dev->out_sg, dev->nb_out_sg,
597 DMA_TO_DEVICE);
598 dma_unmap_sg(dev->device, dev->in_sg, dev->nb_in_sg,
599 DMA_FROM_DEVICE); 597 DMA_FROM_DEVICE);
598 dma_unmap_sg(dev->device, dev->in_sg, dev->nb_in_sg,
599 DMA_TO_DEVICE);
600 600
601 return 0; 601 return 0;
602} 602}