summaryrefslogtreecommitdiffstats
path: root/drivers/crypto/mv_cesa.c
diff options
context:
space:
mode:
authorSimon Baatz <gmbnomis@gmail.com>2012-07-19 00:04:09 +0200
committerAndrew Lunn <andrew@lunn.ch>2012-07-25 17:06:21 +0200
commitbaffab28b13120694fa3ebab08d3e99667a851d2 (patch)
treeba6021fe52fd1814b06ab07ba2aa8f51c6c2da06 /drivers/crypto/mv_cesa.c
parent30e0f58035073c895a8d33e1521e412be73e02bc (diff)
downloadlinux-stable-baffab28b13120694fa3ebab08d3e99667a851d2.tar.gz
linux-stable-baffab28b13120694fa3ebab08d3e99667a851d2.tar.bz2
linux-stable-baffab28b13120694fa3ebab08d3e99667a851d2.zip
ARM: Orion: fix driver probe error handling with respect to clk
The clk patches added code to get and enable clocks in the respective driver probe functions. If the probe function failed for some reason after enabling the clock, the clock was not disabled again in many cases. Signed-off-by: Simon Baatz <gmbnomis@gmail.com> Signed-off-by: Andrew Lumm <andrew@lunn.ch>
Diffstat (limited to 'drivers/crypto/mv_cesa.c')
-rw-r--r--drivers/crypto/mv_cesa.c4
1 files changed, 4 insertions, 0 deletions
diff --git a/drivers/crypto/mv_cesa.c b/drivers/crypto/mv_cesa.c
index 1cc6b3f3e262..a4faa893199c 100644
--- a/drivers/crypto/mv_cesa.c
+++ b/drivers/crypto/mv_cesa.c
@@ -1098,6 +1098,10 @@ err_unreg_ecb:
crypto_unregister_alg(&mv_aes_alg_ecb);
err_irq:
free_irq(irq, cp);
+ if (!IS_ERR(cp->clk)) {
+ clk_disable_unprepare(cp->clk);
+ clk_put(cp->clk);
+ }
err_thread:
kthread_stop(cp->queue_th);
err_unmap_sram: