2015-02-07 11:32:03

by Nicholas Mc Guire

[permalink] [raw]
Subject: [PATCH RFC v2] crypto: sahara: pass on error condition

A failure of sahara_hw_descriptor_create() with -EINVAL due to scatter list
out of bounds/invalid would not be reported back. This patch just passes on
the -EINVAL so it is visible in sahara_queue_manage().

Signed-off-by: Nicholas Mc Guire <[email protected]>
---

v2: cut&past error - the condition is not if (!ret) but if (ret) as
sahara_hw_descriptor_create() will return 0 on success and -EINVAL
in all failure paths.

Patch was only compile tested with imx_v4_v5_defconfig
CONFIG_CRYPTO_HW=y, CONFIG_CRYPTO_DEV_SAHARA=m

Patch is against 3.19.0-rc7 (localversion-next is -next-20150204)

drivers/crypto/sahara.c | 2 ++
1 file changed, 2 insertions(+)

diff --git a/drivers/crypto/sahara.c b/drivers/crypto/sahara.c
index 0c790be..a9eeb8b 100644
--- a/drivers/crypto/sahara.c
+++ b/drivers/crypto/sahara.c
@@ -602,6 +602,8 @@ static int sahara_aes_process(struct ablkcipher_request *req)
reinit_completion(&dev->dma_completion);

ret = sahara_hw_descriptor_create(dev);
+ if (ret)
+ return -EINVAL;

timeout = wait_for_completion_timeout(&dev->dma_completion,
msecs_to_jiffies(SAHARA_TIMEOUT_MS));
--
1.7.10.4