crypto: sahara - improve error handling in sahara_sha_process()
authorOvidiu Panait <ovidiu.panait@windriver.com>
Sun, 24 Dec 2023 08:21:34 +0000 (10:21 +0200)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 25 Jan 2024 23:35:18 +0000 (15:35 -0800)
[ Upstream commit 5deff027fca49a1eb3b20359333cf2ae562a2343 ]

sahara_sha_hw_data_descriptor_create() returns negative error codes on
failure, so make sure the errors are correctly handled / propagated.

Fixes: 5a2bb93f5992 ("crypto: sahara - add support for SHA1/256")
Signed-off-by: Ovidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/crypto/sahara.c

index 86ff5ad..117aa42 100644 (file)
@@ -987,7 +987,10 @@ static int sahara_sha_process(struct ahash_request *req)
                return ret;
 
        if (rctx->first) {
-               sahara_sha_hw_data_descriptor_create(dev, rctx, req, 0);
+               ret = sahara_sha_hw_data_descriptor_create(dev, rctx, req, 0);
+               if (ret)
+                       return ret;
+
                dev->hw_desc[0]->next = 0;
                rctx->first = 0;
        } else {
@@ -995,7 +998,10 @@ static int sahara_sha_process(struct ahash_request *req)
 
                sahara_sha_hw_context_descriptor_create(dev, rctx, req, 0);
                dev->hw_desc[0]->next = dev->hw_phys_desc[1];
-               sahara_sha_hw_data_descriptor_create(dev, rctx, req, 1);
+               ret = sahara_sha_hw_data_descriptor_create(dev, rctx, req, 1);
+               if (ret)
+                       return ret;
+
                dev->hw_desc[1]->next = 0;
        }