Here, Clock enable can failed. So adding an error check for
clk_prepare_enable.

Signed-off-by: Arvind Yadav <[email protected]>
---
 drivers/crypto/img-hash.c | 12 ++++++++++--
 1 file changed, 10 insertions(+), 2 deletions(-)

diff --git a/drivers/crypto/img-hash.c b/drivers/crypto/img-hash.c
index 9b07f3d8..0c6a917 100644
--- a/drivers/crypto/img-hash.c
+++ b/drivers/crypto/img-hash.c
@@ -1088,9 +1088,17 @@ static int img_hash_suspend(struct device *dev)
 static int img_hash_resume(struct device *dev)
 {
        struct img_hash_dev *hdev = dev_get_drvdata(dev);
+       int ret;
 
-       clk_prepare_enable(hdev->hash_clk);
-       clk_prepare_enable(hdev->sys_clk);
+       ret = clk_prepare_enable(hdev->hash_clk);
+       if (ret)
+               return ret;
+
+       ret = clk_prepare_enable(hdev->sys_clk);
+       if (ret) {
+               clk_disable_unprepare(hdev->hash_clk);
+               return ret;
+       }
 
        return 0;
 }
-- 
1.9.1

Reply via email to