crypto: ccree - only check condition if needed
authorGilad Ben-Yossef <gilad@benyossef.com>
Sun, 8 Mar 2020 15:57:07 +0000 (17:57 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 12 Mar 2020 12:00:16 +0000 (23:00 +1100)
Move testing of condition to after the point we decide if
we need it or not.

Signed-off-by: Gilad Ben-Yossef <gilad@benyossef.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/ccree/cc_aead.c

index 1c5d927..cce103e 100644 (file)
@@ -1800,12 +1800,6 @@ static int cc_gcm(struct aead_request *req, struct cc_hw_desc desc[],
        struct aead_req_ctx *req_ctx = aead_request_ctx(req);
        unsigned int cipher_flow_mode;
 
-       if (req_ctx->gen_ctx.op_type == DRV_CRYPTO_DIRECTION_DECRYPT) {
-               cipher_flow_mode = AES_and_HASH;
-       } else { /* Encrypt */
-               cipher_flow_mode = AES_to_HASH_and_DOUT;
-       }
-
        //in RFC4543 no data to encrypt. just copy data from src to dest.
        if (req_ctx->plaintext_authenticate_only) {
                cc_proc_cipher_desc(req, BYPASS, desc, seq_size);
@@ -1817,6 +1811,12 @@ static int cc_gcm(struct aead_request *req, struct cc_hw_desc desc[],
                return 0;
        }
 
+       if (req_ctx->gen_ctx.op_type == DRV_CRYPTO_DIRECTION_DECRYPT) {
+               cipher_flow_mode = AES_and_HASH;
+       } else { /* Encrypt */
+               cipher_flow_mode = AES_to_HASH_and_DOUT;
+       }
+
        // for gcm and rfc4106.
        cc_set_ghash_desc(req, desc, seq_size);
        /* process(ghash) assoc data */