drivers/mmc: Move a dereference below a NULL test
authorJulia Lawall <julia@diku.dk>
Tue, 16 Dec 2008 15:13:09 +0000 (16:13 +0100)
committerPierre Ossman <drzeus@drzeus.cx>
Wed, 31 Dec 2008 17:18:14 +0000 (18:18 +0100)
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>
drivers/mmc/host/tmio_mmc.c

index 95430b8..6a7a619 100644 (file)
@@ -224,7 +224,7 @@ static inline void tmio_mmc_data_irq(struct tmio_mmc_host *host)
 {
        void __iomem *ctl = host->ctl;
        struct mmc_data *data = host->data;
-       struct mmc_command *stop = data->stop;
+       struct mmc_command *stop;
 
        host->data = NULL;
 
@@ -232,6 +232,7 @@ static inline void tmio_mmc_data_irq(struct tmio_mmc_host *host)
                pr_debug("Spurious data end IRQ\n");
                return;
        }
+       stop = data->stop;
 
        /* FIXME - return correct transfer count on errors */
        if (!data->error)