crypto: omap-sham - Convert to devm_kzalloc()
authorLokesh Vutla <lokeshvutla@ti.com>
Fri, 26 Jul 2013 06:59:17 +0000 (12:29 +0530)
committerHerbert Xu <herbert@gondor.apana.org.au>
Thu, 1 Aug 2013 00:54:01 +0000 (10:54 +1000)
Use devm_kzalloc() to make cleanup paths simpler.

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

index b82b140..ae1ca8b 100644 (file)
@@ -1870,7 +1870,7 @@ static int omap_sham_probe(struct platform_device *pdev)
        int err, i, j;
        u32 rev;
 
-       dd = kzalloc(sizeof(struct omap_sham_dev), GFP_KERNEL);
+       dd = devm_kzalloc(dev, sizeof(struct omap_sham_dev), GFP_KERNEL);
        if (dd == NULL) {
                dev_err(dev, "unable to alloc data struct.\n");
                err = -ENOMEM;
@@ -1887,12 +1887,12 @@ static int omap_sham_probe(struct platform_device *pdev)
        err = (dev->of_node) ? omap_sham_get_res_of(dd, dev, &res) :
                               omap_sham_get_res_pdev(dd, pdev, &res);
        if (err)
-               goto res_err;
+               goto data_err;
 
        dd->io_base = devm_ioremap_resource(dev, &res);
        if (IS_ERR(dd->io_base)) {
                err = PTR_ERR(dd->io_base);
-               goto res_err;
+               goto data_err;
        }
        dd->phys_base = res.start;
 
@@ -1901,7 +1901,7 @@ static int omap_sham_probe(struct platform_device *pdev)
        if (err) {
                dev_err(dev, "unable to request irq %d, err = %d\n",
                        dd->irq, err);
-               goto res_err;
+               goto data_err;
        }
 
        dma_cap_zero(mask);
@@ -1913,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 res_err;
+               goto data_err;
        }
 
        dd->flags |= dd->pdata->flags;
@@ -1951,9 +1951,6 @@ err_algs:
                                        &dd->pdata->algs_info[i].algs_list[j]);
        pm_runtime_disable(dev);
        dma_release_channel(dd->dma_lch);
-res_err:
-       kfree(dd);
-       dd = NULL;
 data_err:
        dev_err(dev, "initialization failed.\n");
 
@@ -1978,8 +1975,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);
-       kfree(dd);
-       dd = NULL;
 
        return 0;
 }