diff options
Diffstat (limited to 'target/linux/brcm63xx/patches-4.4/000-4.8-09-mtd-spi-nor-add-read-loop.patch')
-rw-r--r-- | target/linux/brcm63xx/patches-4.4/000-4.8-09-mtd-spi-nor-add-read-loop.patch | 54 |
1 files changed, 0 insertions, 54 deletions
diff --git a/target/linux/brcm63xx/patches-4.4/000-4.8-09-mtd-spi-nor-add-read-loop.patch b/target/linux/brcm63xx/patches-4.4/000-4.8-09-mtd-spi-nor-add-read-loop.patch deleted file mode 100644 index 662c73ada9..0000000000 --- a/target/linux/brcm63xx/patches-4.4/000-4.8-09-mtd-spi-nor-add-read-loop.patch +++ /dev/null @@ -1,54 +0,0 @@ -From 26f9bcad29a6c240881bd4efc90f16a9990dd6c2 Mon Sep 17 00:00:00 2001 -From: Michal Suchanek <hramrach@gmail.com> -Date: Thu, 5 May 2016 17:31:55 -0700 -Subject: [PATCH 09/10] mtd: spi-nor: add read loop - -mtdblock and ubi do not handle the situation when read returns less data -than requested. Loop in spi-nor until buffer is filled or an error is -returned. - -Signed-off-by: Michal Suchanek <hramrach@gmail.com> -Signed-off-by: Brian Norris <computersforpeace@gmail.com> -Tested-by Cyrille Pitchen <cyrille.pitchen@atmel.com> -Acked-by: Michal Suchanek <hramrach@gmail.com> -Tested-by: Michal Suchanek <hramrach@gmail.com> ---- - drivers/mtd/spi-nor/spi-nor.c | 25 +++++++++++++++++++------ - 1 file changed, 19 insertions(+), 6 deletions(-) - ---- a/drivers/mtd/spi-nor/spi-nor.c -+++ b/drivers/mtd/spi-nor/spi-nor.c -@@ -890,14 +890,27 @@ static int spi_nor_read(struct mtd_info - if (ret) - return ret; - -- ret = nor->read(nor, from, len, buf); -+ while (len) { -+ ret = nor->read(nor, from, len, buf); -+ if (ret == 0) { -+ /* We shouldn't see 0-length reads */ -+ ret = -EIO; -+ goto read_err; -+ } -+ if (ret < 0) -+ goto read_err; - -- spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_READ); -- if (ret < 0) -- return ret; -+ WARN_ON(ret > len); -+ *retlen += ret; -+ buf += ret; -+ from += ret; -+ len -= ret; -+ } -+ ret = 0; - -- *retlen += ret; -- return 0; -+read_err: -+ spi_nor_unlock_and_unprep(nor, SPI_NOR_OPS_READ); -+ return ret; - } - - static int sst_write(struct mtd_info *mtd, loff_t to, size_t len, |