738cb0c9cb4faf8c3094119cb4e219c95c69b55c
[openwrt/staging/stintel.git] /
1 From 0e58637eb968c636725dcd6c7055249b4e5326fb Mon Sep 17 00:00:00 2001
2 From: Lorenzo Bianconi <lorenzo@kernel.org>
3 Date: Fri, 13 Sep 2024 23:07:14 +0200
4 Subject: [PATCH 2/2] spi: airoha: fix airoha_snand_{write,read}_data data_len
5 estimation
6
7 Fix data length written and read in airoha_snand_write_data and
8 airoha_snand_read_data routines respectively if it is bigger than
9 SPI_MAX_TRANSFER_SIZE.
10
11 Fixes: a403997c1201 ("spi: airoha: add SPI-NAND Flash controller driver")
12 Tested-by: Christian Marangi <ansuelsmth@gmail.com>
13 Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org>
14 Link: https://patch.msgid.link/20240913-airoha-spi-fixes-v1-2-de2e74ed4664@kernel.org
15 Signed-off-by: Mark Brown <broonie@kernel.org>
16 ---
17 drivers/spi/spi-airoha-snfi.c | 4 ++--
18 1 file changed, 2 insertions(+), 2 deletions(-)
19
20 --- a/drivers/spi/spi-airoha-snfi.c
21 +++ b/drivers/spi/spi-airoha-snfi.c
22 @@ -405,7 +405,7 @@ static int airoha_snand_write_data(struc
23 for (i = 0; i < len; i += data_len) {
24 int err;
25
26 - data_len = min(len, SPI_MAX_TRANSFER_SIZE);
27 + data_len = min(len - i, SPI_MAX_TRANSFER_SIZE);
28 err = airoha_snand_set_fifo_op(as_ctrl, cmd, data_len);
29 if (err)
30 return err;
31 @@ -427,7 +427,7 @@ static int airoha_snand_read_data(struct
32 for (i = 0; i < len; i += data_len) {
33 int err;
34
35 - data_len = min(len, SPI_MAX_TRANSFER_SIZE);
36 + data_len = min(len - i, SPI_MAX_TRANSFER_SIZE);
37 err = airoha_snand_set_fifo_op(as_ctrl, 0xc, data_len);
38 if (err)
39 return err;