drivers/net/wireless/libertas: move a dereference below a NULL test
authorJulia Lawall <julia@diku.dk>
Fri, 9 Jan 2009 10:23:10 +0000 (10:23 +0000)
committerDavid S. Miller <davem@davemloft.net>
Sun, 11 Jan 2009 08:06:35 +0000 (00:06 -0800)
In each case, if the NULL test is necessary, then the dereference should be
moved below the NULL test.  I have also taken advantage of the availability
of the value of priv->dev in the subsequent calls to netif_stop_queue and
netif_carrier_off.

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

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

- T i = E->fld;
+ T i;
  ... when != E
      when != i
  if (E == NULL) S
+ i = E->fld;
// </smpl>

Signed-off-by: Julia Lawall <julia@diku.dk>
Acked-by: Dan Williams <dcbw@redhat.com>
Signed-off-by: Andrew Morton <akpm@linux-foundation.org>
Signed-off-by: David S. Miller <davem@davemloft.net>
drivers/net/wireless/libertas/main.c

index 3dba836794443b9cc39879df2462c1123d5156d1..4e0007d200308d72741d5580eb0396684e636524 100644 (file)
@@ -1369,7 +1369,7 @@ EXPORT_SYMBOL_GPL(lbs_start_card);
 
 void lbs_stop_card(struct lbs_private *priv)
 {
-       struct net_device *dev = priv->dev;
+       struct net_device *dev;
        struct cmd_ctrl_node *cmdnode;
        unsigned long flags;
 
@@ -1377,9 +1377,10 @@ void lbs_stop_card(struct lbs_private *priv)
 
        if (!priv)
                goto out;
+       dev = priv->dev;
 
-       netif_stop_queue(priv->dev);
-       netif_carrier_off(priv->dev);
+       netif_stop_queue(dev);
+       netif_carrier_off(dev);
 
        lbs_debugfs_remove_one(priv);
        if (priv->mesh_tlv) {