From c8b6210e5e6abd7141c83db17b2041eccfbda133 Mon Sep 17 00:00:00 2001 From: Joshua Crawford Date: Sat, 29 Jul 2023 11:38:48 +1200 Subject: [PATCH] drivers: flash: spi_nor: select largest valid erase operation The spi_nor erase op selection was based on the alignment of the end of the region to be erased. This prevented larger erase operations being selected in many cases Closes #60904 Signed-off-by: Joshua Crawford --- drivers/flash/spi_nor.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/flash/spi_nor.c b/drivers/flash/spi_nor.c index ddfdbd6c81d0d7..994aedd3d210fe 100644 --- a/drivers/flash/spi_nor.c +++ b/drivers/flash/spi_nor.c @@ -775,7 +775,7 @@ static int spi_nor_erase(const struct device *dev, off_t addr, size_t size) if ((etp->exp != 0) && SPI_NOR_IS_ALIGNED(addr, etp->exp) - && SPI_NOR_IS_ALIGNED(size, etp->exp) + && (size >= BIT(etp->exp)) && ((bet == NULL) || (etp->exp > bet->exp))) { bet = etp;