[PATCH v2] mtd: m25p80: consider max message size in m25p80_read
Heiner Kallweit
hkallweit1 at gmail.com
Thu Oct 27 22:58:46 PDT 2016
Consider a message size limit when calculating the maximum amount
of data that can be read.
The message size limit has been introduced with 4.9, so cc it
to stable.
Signed-off-by: Heiner Kallweit <hkallweit1 at gmail.com>
Cc: <stable at vger.kernel.org> # 4.9.x
---
v2:
- This patch was part of a series and the other patches of the
series went into 4.9. It's needed to correctly support
reads > 64k on fsl-espi as first user of spi_max_message_size.
See commit 02a595d5d6e4 ("spi: fsl-espi: eliminate spi nor
flash read loop"). CC it to stable.
---
drivers/mtd/devices/m25p80.c | 3 ++-
1 file changed, 2 insertions(+), 1 deletion(-)
diff --git a/drivers/mtd/devices/m25p80.c b/drivers/mtd/devices/m25p80.c
index 9cf7fcd..16a7df2 100644
--- a/drivers/mtd/devices/m25p80.c
+++ b/drivers/mtd/devices/m25p80.c
@@ -172,7 +172,8 @@ static ssize_t m25p80_read(struct spi_nor *nor, loff_t from, size_t len,
t[1].rx_buf = buf;
t[1].rx_nbits = m25p80_rx_nbits(nor);
- t[1].len = min(len, spi_max_transfer_size(spi));
+ t[1].len = min3(len, spi_max_transfer_size(spi),
+ spi_max_message_size(spi) - t[0].len);
spi_message_add_tail(&t[1], &m);
ret = spi_sync(spi, &m);
--
2.9.2
More information about the linux-mtd
mailing list