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>
@disable is_null@
identifier f;
expression E;
identifier fld;
statement S;
@@
+ if (E == NULL) S
  f(...,E->fld,...);
- if (E == NULL) S
@@
identifier f;
expression E;
identifier fld;
statement S;
@@
+ if (!E) S
  f(...,E->fld,...);
- if (!E) S
// </smpl>
Signed-off-by: Julia Lawall <julia@diku.dk>
Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
 {
        usbduxfastsub_t *usbduxfastsub_tmp;
 
-#ifdef CONFIG_COMEDI_DEBUG
-       printk("comedi%d: usbduxfast: detach usb device\n", dev->minor);
-#endif
-
        if (!dev) {
                printk("comedi?: usbduxfast: detach without dev variable...\n");
                return -EFAULT;
        }
 
+#ifdef CONFIG_COMEDI_DEBUG
+       printk("comedi%d: usbduxfast: detach usb device\n", dev->minor);
+#endif
+
        usbduxfastsub_tmp = dev->private;
        if (!usbduxfastsub_tmp) {
                printk("comedi?: usbduxfast: detach without ptr to usbduxfastsub[]\n");