mtd: spi-nor: fix select_uniform_erase to skip 0 erase size
authorMichael Walle <michael@walle.cc>
Wed, 10 Aug 2022 22:06:52 +0000 (00:06 +0200)
committerTudor Ambarus <tudor.ambarus@microchip.com>
Mon, 21 Nov 2022 13:37:16 +0000 (15:37 +0200)
4bait will set the erase size to 0 if there is no corresponding
opcode for the 4byte erase. Fix spi_nor_select_uniform_erase to skip
the 0 erase size to avoid mtd device registration failure cases.

Reported-by: Jae Hyun Yoo <quic_jaehyoo@quicinc.com>
Signed-off-by: Michael Walle <michael@walle.cc>
Signed-off-by: Tudor Ambarus <tudor.ambarus@microchip.com>
Link: https://lore.kernel.org/r/20220810220654.1297699-6-michael@walle.cc
drivers/mtd/spi-nor/core.c

index 1358f3c..2bdc5b5 100644 (file)
@@ -2120,6 +2120,10 @@ spi_nor_select_uniform_erase(struct spi_nor_erase_map *map,
 
                tested_erase = &map->erase_type[i];
 
+               /* Skip masked erase types. */
+               if (!tested_erase->size)
+                       continue;
+
                /*
                 * If the current erase size is the one, stop here:
                 * we have found the right uniform Sector Erase command.