[MTD] mtd_dataflash: Incorrect compare-after-write check
authorAndrew Victor <andrew@sanpeople.com>
Mon, 19 Nov 2007 13:37:23 +0000 (15:37 +0200)
committerDavid Woodhouse <dwmw2@infradead.org>
Wed, 28 Nov 2007 11:55:32 +0000 (11:55 +0000)
After writing to a Dataflash page, the built-in compare operation is
used to check that the page was successfully written.  A logic bug in
checking the results of the comparison currently causes the compare to
never fail.

This bug was originally in the legacy at91_dataflash.c driver.

Signed-off-by: Andrew Victor <andrew@sanpeople.com>
Acked-by: David Brownell <david-b@pacbell.net>
Signed-off-by: David Woodhouse <dwmw2@infradead.org>
drivers/mtd/devices/mtd_dataflash.c

index a5ed6d232c357b16b7ffacfedd10d81a9915dad8..b35e4813a3a5e146f6725fb13d6d3be0f588bfe6 100644 (file)
@@ -420,7 +420,7 @@ static int dataflash_write(struct mtd_info *mtd, loff_t to, size_t len,
                status = dataflash_waitready(priv->spi);
 
                /* Check result of the compare operation */
-               if ((status & (1 << 6)) == 1) {
+               if (status & (1 << 6)) {
                        printk(KERN_ERR "%s: compare page %u, err %d\n",
                                spi->dev.bus_id, pageaddr, status);
                        remaining = 0;