drivers/net: Move a dereference below a NULL test
authorJulia Lawall <julia@diku.dk>
Sun, 19 Jul 2009 06:13:04 +0000 (06:13 +0000)
committerDavid S. Miller <davem@davemloft.net>
Tue, 21 Jul 2009 20:00:43 +0000 (13:00 -0700)
If the NULL test is necessary, then the dereferences should be moved below
the NULL test.

The semantic patch that makes this change is as follows:
(http://www.emn.fr/x-info/coccinelle/)

// <smpl>
@@
type T;
expression E,E1;
identifier i,fld;
statement S;
@@

- T i = E->fld;
+ T i;
  ... when != E=E1
      when != i
  BUG_ON (E == NULL||...);
+ i = E->fld;
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/ibm_newemac/rgmii.c

index 1d5379de6900f5558e8130b0e4c84b5e3e85f818..8d76cb89dbd61e6d252ed30fbe1bf211f5081732 100644 (file)
@@ -188,11 +188,12 @@ void rgmii_put_mdio(struct of_device *ofdev, int input)
 void rgmii_detach(struct of_device *ofdev, int input)
 {
        struct rgmii_instance *dev = dev_get_drvdata(&ofdev->dev);
-       struct rgmii_regs __iomem *p = dev->base;
-
-       mutex_lock(&dev->lock);
+       struct rgmii_regs __iomem *p;
 
        BUG_ON(!dev || dev->users == 0);
+       p = dev->base;
+
+       mutex_lock(&dev->lock);
 
        RGMII_DBG(dev, "detach(%d)" NL, input);