In each case, 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>
Signed-off-by: Pierre Ossman <drzeus@drzeus.cx>
 {
        void __iomem *ctl = host->ctl;
        struct mmc_data *data = host->data;
-       struct mmc_command *stop = data->stop;
+       struct mmc_command *stop;
 
        host->data = NULL;
 
                pr_debug("Spurious data end IRQ\n");
                return;
        }
+       stop = data->stop;
 
        /* FIXME - return correct transfer count on errors */
        if (!data->error)