• Himangi Saraogi's avatar
    crypto: caam - Introduce the use of the managed version of kzalloc · 4776d381
    Himangi Saraogi authored
    This patch moves data allocated using kzalloc to managed data allocated
    using devm_kzalloc and cleans now unnecessary kfrees in probe and remove
    functions.  Also, linux/device.h is added to make sure the devm_*()
    routine declarations are unambiguously available. Earlier, in the probe
    function ctrlpriv was leaked on the failure of ctrl = of_iomap(nprop, 0);
    as well as on the failure of ctrlpriv->jrpdev = kzalloc(...); . These
    two bugs have been fixed by the patch.
    
    The following Coccinelle semantic patch was used for making the change:
    
    identifier p, probefn, removefn;
    @@
    struct platform_driver p = {
      .probe = probefn,
      .remove = removefn,
    };
    
    @prb@
    identifier platform.probefn, pdev;
    expression e, e1, e2;
    @@
    probefn(struct platform_device *pdev, ...) {
      <+...
    - e = kzalloc(e1, e2)
    + e = devm_kzalloc(&pdev->dev, e1, e2)
      ...
    ?-kfree(e);
      ...+>
    }
    
    @rem depends on prb@
    identifier platform.removefn;
    expression e;
    @@
    removefn(...) {
      <...
    - kfree(e);
      ...>
    }
    Signed-off-by: default avatarHimangi Saraogi <himangi774@gmail.com>
    Acked-by: default avatarJulia Lawall <julia.lawall@lip6.fr>
    Reviewed-by: default avatarMarek Vasut <marex@denx.de>
    Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
    4776d381
ctrl.c 18.8 KB