If the NULL test is necessary, then the dereference 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;
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>
Cc: YanBo <dreamfly281@gmail.com>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
 static void __devexit agnx_pci_remove(struct pci_dev *pdev)
 {
        struct ieee80211_hw *dev = pci_get_drvdata(pdev);
-       struct agnx_priv *priv = dev->priv;
+       struct agnx_priv *priv;
        AGNX_TRACE;
 
        if (!dev)
                return;
+       priv = dev->priv;
        ieee80211_unregister_hw(dev);
        pci_iounmap(pdev, priv->ctl);
        pci_iounmap(pdev, priv->data);