diff options
author | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-02-20 19:45:52 +0100 |
---|---|---|
committer | Mauro Carvalho Chehab <mchehab@redhat.com> | 2013-02-20 19:45:52 +0100 |
commit | 1339730e73f14673ad55bddda119982504633da9 (patch) | |
tree | 56306454f0cf7152e60dac6030afe07ed667c574 /drivers/crypto/tegra-aes.c | |
parent | i7core_edac: fix kernel crash on unloading i7core_edac. (diff) | |
parent | Linux 3.8-rc7 (diff) | |
download | linux-1339730e73f14673ad55bddda119982504633da9.tar.xz linux-1339730e73f14673ad55bddda119982504633da9.zip |
Merge tag 'v3.8-rc7' into next
Linux 3.8-rc7
* tag 'v3.8-rc7': (12052 commits)
Linux 3.8-rc7
net: sctp: sctp_endpoint_free: zero out secret key data
net: sctp: sctp_setsockopt_auth_key: use kzfree instead of kfree
atm/iphase: rename fregt_t -> ffreg_t
ARM: 7641/1: memory: fix broken mmap by ensuring TASK_UNMAPPED_BASE is aligned
ARM: DMA mapping: fix bad atomic test
ARM: realview: ensure that we have sufficient IRQs available
ARM: GIC: fix GIC cpumask initialization
net: usb: fix regression from FLAG_NOARP code
l2tp: dont play with skb->truesize
net: sctp: sctp_auth_key_put: use kzfree instead of kfree
netback: correct netbk_tx_err to handle wrap around.
xen/netback: free already allocated memory on failure in xen_netbk_get_requests
xen/netback: don't leak pages on failure in xen_netbk_tx_check_gop.
xen/netback: shutdown the ring if it contains garbage.
drm/ttm: fix fence locking in ttm_buffer_object_transfer, 2nd try
virtio_console: Don't access uninitialized data.
net: qmi_wwan: add more Huawei devices, including E320
net: cdc_ncm: add another Huawei vendor specific device
ipv6/ip6_gre: fix error case handling in ip6gre_tunnel_xmit()
...
Diffstat (limited to 'drivers/crypto/tegra-aes.c')
-rw-r--r-- | drivers/crypto/tegra-aes.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/drivers/crypto/tegra-aes.c b/drivers/crypto/tegra-aes.c index 37185e6630cd..85ea7525fa36 100644 --- a/drivers/crypto/tegra-aes.c +++ b/drivers/crypto/tegra-aes.c @@ -41,8 +41,6 @@ #include <linux/completion.h> #include <linux/workqueue.h> -#include <mach/clk.h> - #include <crypto/scatterwalk.h> #include <crypto/aes.h> #include <crypto/internal/rng.h> @@ -674,8 +672,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 +759,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); @@ -1031,7 +1033,7 @@ out: if (dd->buf_out) dma_free_coherent(dev, AES_HW_DMA_BUFFER_SIZE_BYTES, dd->buf_out, dd->dma_buf_out); - if (IS_ERR(dd->aes_clk)) + if (!IS_ERR(dd->aes_clk)) clk_put(dd->aes_clk); if (aes_wq) destroy_workqueue(aes_wq); @@ -1045,7 +1047,7 @@ out: return err; } -static int __devexit tegra_aes_remove(struct platform_device *pdev) +static int tegra_aes_remove(struct platform_device *pdev) { struct device *dev = &pdev->dev; struct tegra_aes_dev *dd = platform_get_drvdata(pdev); @@ -1072,7 +1074,7 @@ static int __devexit tegra_aes_remove(struct platform_device *pdev) return 0; } -static struct of_device_id tegra_aes_of_match[] __devinitdata = { +static struct of_device_id tegra_aes_of_match[] = { { .compatible = "nvidia,tegra20-aes", }, { .compatible = "nvidia,tegra30-aes", }, { }, @@ -1080,7 +1082,7 @@ static struct of_device_id tegra_aes_of_match[] __devinitdata = { static struct platform_driver tegra_aes_driver = { .probe = tegra_aes_probe, - .remove = __devexit_p(tegra_aes_remove), + .remove = tegra_aes_remove, .driver = { .name = "tegra-aes", .owner = THIS_MODULE, |