]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
spi: airoha: return an error for continuous mode dirmap creation cases
authorMikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Sun, 12 Oct 2025 12:16:52 +0000 (15:16 +0300)
committerMark Brown <broonie@kernel.org>
Thu, 16 Oct 2025 13:25:31 +0000 (14:25 +0100)
This driver can accelerate single page operations only, thus
continuous reading mode should not be used.

Continuous reading will use sizes up to the size of one erase block.
This size is much larger than the size of single flash page. Use this
difference to identify continuous reading and return an error.

Signed-off-by: Mikhail Kshevetskiy <mikhail.kshevetskiy@iopsys.eu>
Reviewed-by: Frieder Schrempf <frieder.schrempf@kontron.de>
Reviewed-by: AngeloGioacchino Del Regno <angelogioacchino.delregno@collabora.com>
Fixes: a403997c12019 ("spi: airoha: add SPI-NAND Flash controller driver")
Link: https://patch.msgid.link/20251012121707.2296160-2-mikhail.kshevetskiy@iopsys.eu
Signed-off-by: Mark Brown <broonie@kernel.org>
drivers/spi/spi-airoha-snfi.c

index dbe640986825ebe99f5c38de1dc07038d796264b..043a03cd90a199ba3a3106b6e1974f686d6ea86c 100644 (file)
@@ -618,6 +618,10 @@ static int airoha_snand_dirmap_create(struct spi_mem_dirmap_desc *desc)
        if (desc->info.offset + desc->info.length > U32_MAX)
                return -EINVAL;
 
+       /* continuous reading is not supported */
+       if (desc->info.length > SPI_NAND_CACHE_SIZE)
+               return -E2BIG;
+
        if (!airoha_snand_supports_op(desc->mem, &desc->info.op_tmpl))
                return -EOPNOTSUPP;