]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
nvme-auth: use SHASH_DESC_ON_STACK
authorHannes Reinecke <hare@kernel.org>
Wed, 7 May 2025 08:28:17 +0000 (10:28 +0200)
committerChristoph Hellwig <hch@lst.de>
Tue, 20 May 2025 03:34:26 +0000 (05:34 +0200)
Use SHASH_DESC_ON_STACK to avoid explicit allocation.

Signed-off-by: Hannes Reinecke <hare@kernel.org>
Reviewed-by: Damien Le Moal <dlemoal@kernel.org>
Signed-off-by: Christoph Hellwig <hch@lst.de>
drivers/nvme/common/auth.c

index 2c092ec8c0a94c9418a7e1d16e3e86e336471162..3b6d759bcdf26cd6416680bb38d68f6b0d4144d5 100644 (file)
@@ -242,7 +242,7 @@ struct nvme_dhchap_key *nvme_auth_transform_key(
 {
        const char *hmac_name;
        struct crypto_shash *key_tfm;
-       struct shash_desc *shash;
+       SHASH_DESC_ON_STACK(shash, key_tfm);
        struct nvme_dhchap_key *transformed_key;
        int ret, key_len;
 
@@ -267,19 +267,11 @@ struct nvme_dhchap_key *nvme_auth_transform_key(
        if (IS_ERR(key_tfm))
                return ERR_CAST(key_tfm);
 
-       shash = kmalloc(sizeof(struct shash_desc) +
-                       crypto_shash_descsize(key_tfm),
-                       GFP_KERNEL);
-       if (!shash) {
-               ret = -ENOMEM;
-               goto out_free_key;
-       }
-
        key_len = crypto_shash_digestsize(key_tfm);
        transformed_key = nvme_auth_alloc_key(key_len, key->hash);
        if (!transformed_key) {
                ret = -ENOMEM;
-               goto out_free_shash;
+               goto out_free_key;
        }
 
        shash->tfm = key_tfm;
@@ -299,15 +291,12 @@ struct nvme_dhchap_key *nvme_auth_transform_key(
        if (ret < 0)
                goto out_free_transformed_key;
 
-       kfree(shash);
        crypto_free_shash(key_tfm);
 
        return transformed_key;
 
 out_free_transformed_key:
        nvme_auth_free_key(transformed_key);
-out_free_shash:
-       kfree(shash);
 out_free_key:
        crypto_free_shash(key_tfm);