[for-4.9.y,1/5] mtd: m25p80: consider max message size in m25p80_read

Message ID 1531815558-20002-2-git-send-email-amit.pundir@linaro.org
State New
Headers show
  • Stable commits picked up from lede project
Related show

Commit Message

Amit Pundir July 17, 2018, 8:19 a.m.
From: Heiner Kallweit <hkallweit1@gmail.com>

commit 9e276de6a367cde07c1a63522152985d4e5cca8b upstream.

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@gmail.com>

Signed-off-by: Cyrille Pitchen <cyrille.pitchen@atmel.com>

Signed-off-by: Amit Pundir <amit.pundir@linaro.org>

Cherry-picked from lede tree https://git.lede-project.org/?p=source.git

 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 9cf7fcd28034..16a7df2a0246 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);