crypto: caam - avoid needlessly saving and restoring caam_hash_ctx
authorRussell King <rmk+kernel@arm.linux.org.uk>
Sun, 18 Oct 2015 16:51:15 +0000 (17:51 +0100)
committerHerbert Xu <herbert@gondor.apana.org.au>
Tue, 20 Oct 2015 14:11:10 +0000 (22:11 +0800)
When exporting and importing the hash state, we will only export and
import into hashes which share the same struct crypto_ahash pointer.
(See hash_accept->af_alg_accept->hash_accept_parent.)

This means that saving the caam_hash_ctx structure on export, and
restoring it on import is a waste of resources.  So, remove this code.

Signed-off-by: Russell King <rmk+kernel@arm.linux.org.uk>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/caam/caamhash.c

index 1f58a791161e8476b58485671ad916d7446ff725..cb7af558b1760dad74ed46d13384189c2fcbf6ad 100644 (file)
@@ -1554,24 +1554,20 @@ static int ahash_final(struct ahash_request *req)
 static int ahash_export(struct ahash_request *req, void *out)
 {
        struct crypto_ahash *ahash = crypto_ahash_reqtfm(req);
-       struct caam_hash_ctx *ctx = crypto_ahash_ctx(ahash);
        struct caam_hash_state *state = ahash_request_ctx(req);
 
-       memcpy(out, ctx, sizeof(struct caam_hash_ctx));
-       memcpy(out + sizeof(struct caam_hash_ctx), state,
-              sizeof(struct caam_hash_state));
+       memcpy(out, state, sizeof(struct caam_hash_state));
+
        return 0;
 }
 
 static int ahash_import(struct ahash_request *req, const void *in)
 {
        struct crypto_ahash *ahash = crypto_ahash_reqtfm(req);
-       struct caam_hash_ctx *ctx = crypto_ahash_ctx(ahash);
        struct caam_hash_state *state = ahash_request_ctx(req);
 
-       memcpy(ctx, in, sizeof(struct caam_hash_ctx));
-       memcpy(state, in + sizeof(struct caam_hash_ctx),
-              sizeof(struct caam_hash_state));
+       memcpy(state, in, sizeof(struct caam_hash_state));
+
        return 0;
 }