Skip to content

Commit 0e58637

Browse files
LorenzoBianconibroonie
authored andcommitted
spi: airoha: fix airoha_snand_{write,read}_data data_len estimation
Fix data length written and read in airoha_snand_write_data and airoha_snand_read_data routines respectively if it is bigger than SPI_MAX_TRANSFER_SIZE. Fixes: a403997 ("spi: airoha: add SPI-NAND Flash controller driver") Tested-by: Christian Marangi <ansuelsmth@gmail.com> Signed-off-by: Lorenzo Bianconi <lorenzo@kernel.org> Link: https://patch.msgid.link/20240913-airoha-spi-fixes-v1-2-de2e74ed4664@kernel.org Signed-off-by: Mark Brown <broonie@kernel.org>
1 parent 2e6bbfe commit 0e58637

File tree

1 file changed

+2
-2
lines changed

1 file changed

+2
-2
lines changed

drivers/spi/spi-airoha-snfi.c

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -405,7 +405,7 @@ static int airoha_snand_write_data(struct airoha_snand_ctrl *as_ctrl, u8 cmd,
405405
for (i = 0; i < len; i += data_len) {
406406
int err;
407407

408-
data_len = min(len, SPI_MAX_TRANSFER_SIZE);
408+
data_len = min(len - i, SPI_MAX_TRANSFER_SIZE);
409409
err = airoha_snand_set_fifo_op(as_ctrl, cmd, data_len);
410410
if (err)
411411
return err;
@@ -427,7 +427,7 @@ static int airoha_snand_read_data(struct airoha_snand_ctrl *as_ctrl, u8 *data,
427427
for (i = 0; i < len; i += data_len) {
428428
int err;
429429

430-
data_len = min(len, SPI_MAX_TRANSFER_SIZE);
430+
data_len = min(len - i, SPI_MAX_TRANSFER_SIZE);
431431
err = airoha_snand_set_fifo_op(as_ctrl, 0xc, data_len);
432432
if (err)
433433
return err;

0 commit comments

Comments
 (0)