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)
committerHerbert Xu <herbert@gondor.apana.org.au>
Fri, 29 Dec 2023 03:25:56 +0000 (11:25 +0800)
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>
drivers/crypto/sahara.c

index a9abf6439c4b3d91264093006224dde63218f9db..d49659db6a4859693e163bede6db55919ea65439 100644 (file)
@@ -985,7 +985,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 {
@@ -993,7 +996,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;
        }