diff options
author | Fabio Estevam <fabio.estevam@freescale.com> | 2013-09-22 13:42:26 -0400 |
---|---|---|
committer | Herbert Xu <herbert@gondor.apana.org.au> | 2013-09-23 16:02:25 -0400 |
commit | 0ff647551b4282eee90a6d944c9fccde07845db4 (patch) | |
tree | 4f6e7975a89419b5b0b62fd94f1b36a7ffb527d4 /drivers | |
parent | 05a27928f37b31ea8b844e3b0c623d7f46451145 (diff) |
crypto: dcp - Use devm_request_irq()
Using Use devm_request_irq() can make the code smaller and simpler, as we do
not need to call free_irq() in the probe error path and in the remove function.
Signed-off-by: Fabio Estevam <fabio.estevam@freescale.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'drivers')
-rw-r--r-- | drivers/crypto/dcp.c | 22 |
1 files changed, 7 insertions, 15 deletions
diff --git a/drivers/crypto/dcp.c b/drivers/crypto/dcp.c index 90a7cb7fdc9d..93ab753d610d 100644 --- a/drivers/crypto/dcp.c +++ b/drivers/crypto/dcp.c | |||
@@ -757,7 +757,8 @@ static int dcp_probe(struct platform_device *pdev) | |||
757 | return -EIO; | 757 | return -EIO; |
758 | } | 758 | } |
759 | dev->dcp_vmi_irq = r->start; | 759 | dev->dcp_vmi_irq = r->start; |
760 | ret = request_irq(dev->dcp_vmi_irq, dcp_vmi_irq, 0, "dcp", dev); | 760 | ret = devm_request_irq(&pdev->dev, dev->dcp_vmi_irq, dcp_vmi_irq, 0, |
761 | "dcp", dev); | ||
761 | if (ret != 0) { | 762 | if (ret != 0) { |
762 | dev_err(&pdev->dev, "can't request_irq (0)\n"); | 763 | dev_err(&pdev->dev, "can't request_irq (0)\n"); |
763 | return -EIO; | 764 | return -EIO; |
@@ -766,15 +767,14 @@ static int dcp_probe(struct platform_device *pdev) | |||
766 | r = platform_get_resource(pdev, IORESOURCE_IRQ, 1); | 767 | r = platform_get_resource(pdev, IORESOURCE_IRQ, 1); |
767 | if (!r) { | 768 | if (!r) { |
768 | dev_err(&pdev->dev, "can't get IRQ resource (1)\n"); | 769 | dev_err(&pdev->dev, "can't get IRQ resource (1)\n"); |
769 | ret = -EIO; | 770 | return -EIO; |
770 | goto err_free_irq0; | ||
771 | } | 771 | } |
772 | dev->dcp_irq = r->start; | 772 | dev->dcp_irq = r->start; |
773 | ret = request_irq(dev->dcp_irq, dcp_irq, 0, "dcp", dev); | 773 | ret = devm_request_irq(&pdev->dev, dev->dcp_irq, dcp_irq, 0, "dcp", |
774 | dev); | ||
774 | if (ret != 0) { | 775 | if (ret != 0) { |
775 | dev_err(&pdev->dev, "can't request_irq (1)\n"); | 776 | dev_err(&pdev->dev, "can't request_irq (1)\n"); |
776 | ret = -EIO; | 777 | return -EIO; |
777 | goto err_free_irq0; | ||
778 | } | 778 | } |
779 | 779 | ||
780 | dev->hw_pkg[0] = dma_alloc_coherent(&pdev->dev, | 780 | dev->hw_pkg[0] = dma_alloc_coherent(&pdev->dev, |
@@ -783,8 +783,7 @@ static int dcp_probe(struct platform_device *pdev) | |||
783 | GFP_KERNEL); | 783 | GFP_KERNEL); |
784 | if (!dev->hw_pkg[0]) { | 784 | if (!dev->hw_pkg[0]) { |
785 | dev_err(&pdev->dev, "Could not allocate hw descriptors\n"); | 785 | dev_err(&pdev->dev, "Could not allocate hw descriptors\n"); |
786 | ret = -ENOMEM; | 786 | return -ENOMEM; |
787 | goto err_free_irq1; | ||
788 | } | 787 | } |
789 | 788 | ||
790 | for (i = 1; i < DCP_MAX_PKG; i++) { | 789 | for (i = 1; i < DCP_MAX_PKG; i++) { |
@@ -849,10 +848,6 @@ err_free_hw_packet: | |||
849 | dma_free_coherent(&pdev->dev, DCP_MAX_PKG * | 848 | dma_free_coherent(&pdev->dev, DCP_MAX_PKG * |
850 | sizeof(struct dcp_hw_packet), dev->hw_pkg[0], | 849 | sizeof(struct dcp_hw_packet), dev->hw_pkg[0], |
851 | dev->hw_phys_pkg); | 850 | dev->hw_phys_pkg); |
852 | err_free_irq1: | ||
853 | free_irq(dev->dcp_irq, dev); | ||
854 | err_free_irq0: | ||
855 | free_irq(dev->dcp_vmi_irq, dev); | ||
856 | 851 | ||
857 | return ret; | 852 | return ret; |
858 | } | 853 | } |
@@ -870,9 +865,6 @@ static int dcp_remove(struct platform_device *pdev) | |||
870 | dma_free_coherent(&pdev->dev, 2 * AES_KEYSIZE_128, dev->payload_base, | 865 | dma_free_coherent(&pdev->dev, 2 * AES_KEYSIZE_128, dev->payload_base, |
871 | dev->payload_base_dma); | 866 | dev->payload_base_dma); |
872 | 867 | ||
873 | free_irq(dev->dcp_irq, dev); | ||
874 | free_irq(dev->dcp_vmi_irq, dev); | ||
875 | |||
876 | tasklet_kill(&dev->done_task); | 868 | tasklet_kill(&dev->done_task); |
877 | tasklet_kill(&dev->queue_task); | 869 | tasklet_kill(&dev->queue_task); |
878 | 870 | ||