]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
crypto: hisilicon/sec2 - optimize the error return process
authorChenghai Huang <huangchenghai2@huawei.com>
Sat, 9 Dec 2023 07:01:35 +0000 (15:01 +0800)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 13 Mar 2025 11:50:01 +0000 (12:50 +0100)
[ Upstream commit 1bed82257b1881b689ee41f14ecb4c20a273cac0 ]

Add the printf of an error message and optimized the handling
process of ret.

Signed-off-by: Chenghai Huang <huangchenghai2@huawei.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Stable-dep-of: fd337f852b26 ("crypto: hisilicon/sec2 - fix for aead icv error")
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/crypto/hisilicon/sec2/sec_crypto.c

index 72e26a4bfb8e624200073b210ff4c103f142b852..dedcc7f7430393d56fa6c11c29f20b7561514339 100644 (file)
@@ -803,6 +803,7 @@ static int sec_skcipher_setkey(struct crypto_skcipher *tfm, const u8 *key,
                ret = sec_skcipher_aes_sm4_setkey(c_ctx, keylen, c_mode);
                break;
        default:
+               dev_err(dev, "sec c_alg err!\n");
                return -EINVAL;
        }
 
@@ -1128,7 +1129,8 @@ static int sec_aead_setkey(struct crypto_aead *tfm, const u8 *key,
                return 0;
        }
 
-       if (crypto_authenc_extractkeys(&keys, key, keylen))
+       ret = crypto_authenc_extractkeys(&keys, key, keylen);
+       if (ret)
                goto bad_key;
 
        ret = sec_aead_aes_set_key(c_ctx, &keys);
@@ -1145,6 +1147,7 @@ static int sec_aead_setkey(struct crypto_aead *tfm, const u8 *key,
 
        if ((ctx->a_ctx.mac_len & SEC_SQE_LEN_RATE_MASK)  ||
            (ctx->a_ctx.a_key_len & SEC_SQE_LEN_RATE_MASK)) {
+               ret = -EINVAL;
                dev_err(dev, "MAC or AUTH key length error!\n");
                goto bad_key;
        }
@@ -1153,7 +1156,7 @@ static int sec_aead_setkey(struct crypto_aead *tfm, const u8 *key,
 
 bad_key:
        memzero_explicit(&keys, sizeof(struct crypto_authenc_keys));
-       return -EINVAL;
+       return ret;
 }