diff options
author | Wei Yongjun <yongjun_wei@trendmicro.com.cn> | 2012-10-21 19:56:42 +0800 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2012-10-24 21:10:56 +0800 |
commit | 3200da8d9afb3d0dc617515a2fe364d9d59ef523 (patch) | |
tree | fe2634c1a01ce9e6b4c81b8a58dd2ed7c810874d /drivers/crypto | |
parent | c12ab20b162c9414acadc18c6da6cfd3eea54b7b (diff) | |
download | lwn-3200da8d9afb3d0dc617515a2fe364d9d59ef523.tar.gz lwn-3200da8d9afb3d0dc617515a2fe364d9d59ef523.zip |
crypto: tegra - fix missing unlock on error case
Add the missing unlock on the error handling path in function
tegra_aes_get_random() and tegra_aes_rng_reset().
Signed-off-by: Wei Yongjun <yongjun_wei@trendmicro.com.cn>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers/crypto')
-rw-r--r-- | drivers/crypto/tegra-aes.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/crypto/tegra-aes.c b/drivers/crypto/tegra-aes.c index 37185e6630cd..19adf1c7faa2 100644 --- a/drivers/crypto/tegra-aes.c +++ b/drivers/crypto/tegra-aes.c @@ -674,8 +674,10 @@ static int tegra_aes_get_random(struct crypto_rng *tfm, u8 *rdata, mutex_lock(&aes_lock); ret = clk_prepare_enable(dd->aes_clk); - if (ret) + if (ret) { + mutex_unlock(&aes_lock); return ret; + } ctx->dd = dd; dd->ctx = ctx; @@ -759,8 +761,10 @@ static int tegra_aes_rng_reset(struct crypto_rng *tfm, u8 *seed, dd->flags = FLAGS_ENCRYPT | FLAGS_RNG; ret = clk_prepare_enable(dd->aes_clk); - if (ret) + if (ret) { + mutex_unlock(&aes_lock); return ret; + } aes_set_key(dd); |