Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit ba1ef427 authored by Ovidiu Panait's avatar Ovidiu Panait Committed by Greg Kroah-Hartman
Browse files

crypto: sahara - improve error handling in sahara_sha_process()



[ 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: 5a2bb93f ("crypto: sahara - add support for SHA1/256")
Signed-off-by: default avatarOvidiu Panait <ovidiu.panait@windriver.com>
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
Signed-off-by: default avatarSasha Levin <sashal@kernel.org>
parent 02746970
Loading
Loading
Loading
Loading
+8 −2
Original line number Diff line number Diff line
@@ -1003,7 +1003,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 {
@@ -1011,7 +1014,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;
	}