OSDN Git Service

mtd: spi-nor: handle timeout errors in spi_nor_write()
authorBrian Norris <computersforpeace@gmail.com>
Thu, 7 Aug 2014 01:16:56 +0000 (18:16 -0700)
committerBrian Norris <computersforpeace@gmail.com>
Wed, 5 Nov 2014 10:02:20 +0000 (02:02 -0800)
The error label was unused here. It looks like we're missing at least
one case that should be doing 'goto write_err'.

Signed-off-by: Brian Norris <computersforpeace@gmail.com>
Reviewed-by: Marek Vasut <marex@denx.de>
Acked-by: Huang Shijie <shijie8@gmail.com>
drivers/mtd/spi-nor/spi-nor.c

index c66de2f..b62d9d0 100644 (file)
@@ -805,7 +805,10 @@ static int spi_nor_write(struct mtd_info *mtd, loff_t to, size_t len,
                        if (page_size > nor->page_size)
                                page_size = nor->page_size;
 
-                       wait_till_ready(nor);
+                       ret = wait_till_ready(nor);
+                       if (ret)
+                               goto write_err;
+
                        write_enable(nor);
 
                        nor->write(nor, to + i, page_size, retlen, buf + i);
@@ -814,7 +817,7 @@ static int spi_nor_write(struct mtd_info *mtd, loff_t to, size_t len,
 
 write_err:
        spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_WRITE);
-       return 0;
+       return ret;
 }
 
 static int macronix_quad_enable(struct spi_nor *nor)