crypto: omap-sham - Convert to devm_request_irq()
authorLokesh Vutla <lokeshvutla@ti.com>
Fri, 26 Jul 2013 06:59:16 +0000 (12:29 +0530)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 1 Aug 2013 00:54:00 +0000 (10:54 +1000)
Using devm_request_irq() rather than request_irq().
So removing free_irq() calls from the probe error
path and the remove handler.

Signed-off-by: Lokesh Vutla <lokeshvutla@ti.com>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/crypto/omap-sham.c

index a6eb6a8..b82b140 100644 (file)
@@ -1896,10 +1896,11 @@ static int omap_sham_probe(struct platform_device *pdev)
        }
        dd->phys_base = res.start;
 
-       err = request_irq(dd->irq, dd->pdata->intr_hdlr, IRQF_TRIGGER_LOW,
-                         dev_name(dev), dd);
+       err = devm_request_irq(dev, dd->irq, dd->pdata->intr_hdlr,
+                              IRQF_TRIGGER_NONE, dev_name(dev), dd);
        if (err) {
-               dev_err(dev, "unable to request irq.\n");
+               dev_err(dev, "unable to request irq %d, err = %d\n",
+                       dd->irq, err);
                goto res_err;
        }
 
@@ -1912,7 +1913,7 @@ static int omap_sham_probe(struct platform_device *pdev)
                dev_err(dev, "unable to obtain RX DMA engine channel %u\n",
                        dd->dma);
                err = -ENXIO;
-               goto dma_err;
+               goto res_err;
        }
 
        dd->flags |= dd->pdata->flags;
@@ -1950,8 +1951,6 @@ err_algs:
                                        &dd->pdata->algs_info[i].algs_list[j]);
        pm_runtime_disable(dev);
        dma_release_channel(dd->dma_lch);
-dma_err:
-       free_irq(dd->irq, dd);
 res_err:
        kfree(dd);
        dd = NULL;
@@ -1979,7 +1978,6 @@ static int omap_sham_remove(struct platform_device *pdev)
        tasklet_kill(&dd->done_task);
        pm_runtime_disable(&pdev->dev);
        dma_release_channel(dd->dma_lch);
-       free_irq(dd->irq, dd);
        kfree(dd);
        dd = NULL;