]> git.ipfire.org Git - thirdparty/linux.git/commitdiff
nvmet-auth: use SHASH_DESC_ON_STACK
authorHannes Reinecke <hare@kernel.org>
Wed, 7 May 2025 08:28:18 +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/target/auth.c

index 111dfaaa14a7e71c720ff15836031995e92d0b7f..b340380f38922abafc65f4a53fa7115f40f16bbc 100644 (file)
@@ -293,7 +293,7 @@ int nvmet_auth_host_hash(struct nvmet_req *req, u8 *response,
                         unsigned int shash_len)
 {
        struct crypto_shash *shash_tfm;
-       struct shash_desc *shash;
+       SHASH_DESC_ON_STACK(shash, shash_tfm);
        struct nvmet_ctrl *ctrl = req->sq->ctrl;
        const char *hash_name;
        u8 *challenge = req->sq->dhchap_c1;
@@ -345,19 +345,13 @@ int nvmet_auth_host_hash(struct nvmet_req *req, u8 *response,
                                                    req->sq->dhchap_c1,
                                                    challenge, shash_len);
                if (ret)
-                       goto out_free_challenge;
+                       goto out;
        }
 
        pr_debug("ctrl %d qid %d host response seq %u transaction %d\n",
                 ctrl->cntlid, req->sq->qid, req->sq->dhchap_s1,
                 req->sq->dhchap_tid);
 
-       shash = kzalloc(sizeof(*shash) + crypto_shash_descsize(shash_tfm),
-                       GFP_KERNEL);
-       if (!shash) {
-               ret = -ENOMEM;
-               goto out_free_challenge;
-       }
        shash->tfm = shash_tfm;
        ret = crypto_shash_init(shash);
        if (ret)
@@ -392,8 +386,6 @@ int nvmet_auth_host_hash(struct nvmet_req *req, u8 *response,
                goto out;
        ret = crypto_shash_final(shash, response);
 out:
-       kfree(shash);
-out_free_challenge:
        if (challenge != req->sq->dhchap_c1)
                kfree(challenge);
 out_free_response: