aboutsummaryrefslogtreecommitdiffstats
path: root/drivers/crypto/caam/jr.c
diff options
context:
space:
mode:
authorVakul Garg <vakul.garg@nxp.com>2019-03-22 02:00:37 +0000
committerHerbert Xu <herbert@gondor.apana.org.au>2019-03-28 13:55:34 +0800
commitc23116e48a9b8ffe2fa520add3ba5ba52049327a (patch)
treeab8b7f5128ca52c97e164e5cdea66425035bee4d /drivers/crypto/caam/jr.c
parentcrypto: caam/jr - Removed redundant vars from job ring private data (diff)
downloadlinux-dev-c23116e48a9b8ffe2fa520add3ba5ba52049327a.tar.xz
linux-dev-c23116e48a9b8ffe2fa520add3ba5ba52049327a.zip
crypto: caam/jr - Remove extra memory barrier during job ring enqueue
In caam_jr_enqueue(), a write barrier is needed to order stores to job ring slot before declaring addition of new job into input job ring. The register write is done using wr_reg32() which internally uses iowrite32() for write operation. The api iowrite32() issues a write barrier before issuing write operation. Therefore, the wmb() preceding wr_reg32() can be safely removed. Signed-off-by: Vakul Garg <vakul.garg@nxp.com> Reviewed-by: Horia Geanta <horia.geanta@nxp.com> Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to '')
-rw-r--r--drivers/crypto/caam/jr.c6
1 files changed, 4 insertions, 2 deletions
diff --git a/drivers/crypto/caam/jr.c b/drivers/crypto/caam/jr.c
index e95f82778fa1..1de2562d0982 100644
--- a/drivers/crypto/caam/jr.c
+++ b/drivers/crypto/caam/jr.c
@@ -371,9 +371,11 @@ int caam_jr_enqueue(struct device *dev, u32 *desc,
/*
* Ensure that all job information has been written before
- * notifying CAAM that a new job was added to the input ring.
+ * notifying CAAM that a new job was added to the input ring
+ * using a memory barrier. The wr_reg32() uses api iowrite32()
+ * to do the register write. iowrite32() issues a memory barrier
+ * before the write operation.
*/
- wmb();
wr_reg32(&jrp->rregs->inpring_jobadd, 1);