hwrng: tx4939 - simplify use of devm_ioremap_resource
authorJulia Lawall <Julia.Lawall@lip6.fr>
Wed, 14 Aug 2013 09:11:13 +0000 (11:11 +0200)
committerHerbert Xu <herbert@gondor.apana.org.au>
Wed, 14 Aug 2013 10:42:04 +0000 (20:42 +1000)
Remove unneeded error handling on the result of a call to
platform_get_resource when the value is passed to devm_ioremap_resource.

Move the call to platform_get_resource adjacent to the call to
devm_ioremap_resource to make the connection between them more clear.

A simplified version of the semantic patch that makes this change is as
follows: (http://coccinelle.lip6.fr/)

// <smpl>
@@
expression pdev,res,n,e,e1;
expression ret != 0;
identifier l;
@@

- res = platform_get_resource(pdev, IORESOURCE_MEM, n);
  ... when != res
- if (res == NULL) { ... \(goto l;\|return ret;\) }
  ... when != res
+ res = platform_get_resource(pdev, IORESOURCE_MEM, n);
  e = devm_ioremap_resource(e1, res);
// </smpl>

Signed-off-by: Julia Lawall <Julia.Lawall@lip6.fr>
Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
drivers/char/hw_random/tx4939-rng.c

index 00593c8..09c5fbe 100644 (file)
@@ -110,12 +110,10 @@ static int __init tx4939_rng_probe(struct platform_device *dev)
        struct resource *r;
        int i;
 
-       r = platform_get_resource(dev, IORESOURCE_MEM, 0);
-       if (!r)
-               return -EBUSY;
        rngdev = devm_kzalloc(&dev->dev, sizeof(*rngdev), GFP_KERNEL);
        if (!rngdev)
                return -ENOMEM;
+       r = platform_get_resource(dev, IORESOURCE_MEM, 0);
        rngdev->base = devm_ioremap_resource(&dev->dev, r);
        if (IS_ERR(rngdev->base))
                return PTR_ERR(rngdev->base);