summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRomain Perier <romain.perier@free-electrons.com>2016-08-09 09:03:18 (GMT)
committerHerbert Xu <herbert@gondor.apana.org.au>2016-08-09 10:47:30 (GMT)
commit09951d83fc58a6f772de09c08e370f6d9970dbb6 (patch)
treef4bf4878b61816f65dacfe65d4bd84849a829a80
parent6dc156f4536b9f0abb764cb34e652730dcc4883b (diff)
downloadlinux-09951d83fc58a6f772de09c08e370f6d9970dbb6.tar.xz
crypto: marvell - Update transformation context for each dequeued req
So far, sub part of mv_cesa_int was responsible of dequeuing complete requests, then call the 'cleanup' operation on these reqs and call the crypto api callback 'complete'. The problem is that the transformation context 'ctx' is retrieved only once before the while loop. Which means that the wrong 'cleanup' operation might be called on the wrong type of cesa requests, it can lead to memory corruptions with this message: marvell-cesa f1090000.crypto: dma_pool_free cesa_padding, 5a5a5a5a/5a5a5a5a (bad dma) This commit fixes the issue, by updating the transformation context for each dequeued cesa request. Fixes: commit 85030c5168f1 ("crypto: marvell - Add support for chai...") Signed-off-by: Romain Perier <romain.perier@free-electrons.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
-rw-r--r--drivers/crypto/marvell/cesa.c1
1 files changed, 1 insertions, 0 deletions
diff --git a/drivers/crypto/marvell/cesa.c b/drivers/crypto/marvell/cesa.c
index d64af86..37dadb2 100644
--- a/drivers/crypto/marvell/cesa.c
+++ b/drivers/crypto/marvell/cesa.c
@@ -166,6 +166,7 @@ static irqreturn_t mv_cesa_int(int irq, void *priv)
if (!req)
break;
+ ctx = crypto_tfm_ctx(req->tfm);
mv_cesa_complete_req(ctx, req, 0);
}
}