kernel_samsung_a53x/drivers/mtd
Miquel Raynal 339dd2c40b mtd: rawnand: Bypass a couple of sanity checks during NAND identification
commit 8754d9835683e8fab9a8305acdb38a3aeb9d20bd upstream.

Early during NAND identification, mtd_info fields have not yet been
initialized (namely, writesize and oobsize) and thus cannot be used for
sanity checks yet. Of course if there is a misuse of
nand_change_read_column_op() so early we won't be warned, but there is
anyway no actual check to perform at this stage as we do not yet know
the NAND geometry.

So, if the fields are empty, especially mtd->writesize which is *always*
set quite rapidly after identification, let's skip the sanity checks.

nand_change_read_column_op() is subject to be used early for ONFI/JEDEC
identification in the very unlikely case of:
- bitflips appearing in the parameter page,
- the controller driver not supporting simple DATA_IN cycles.

As nand_change_read_column_op() uses nand_fill_column_cycles() the logic
explaind above also applies in this secondary helper.

Fixes: c27842e7e11f ("mtd: rawnand: onfi: Adapt the parameter page read to constraint controllers")
Fixes: daca31765e8b ("mtd: rawnand: jedec: Adapt the parameter page read to constraint controllers")
Cc: stable@vger.kernel.org
Reported-by: Alexander Dahl <ada@thorsis.com>
Closes: https://lore.kernel.org/linux-mtd/20240306-shaky-bunion-d28b65ea97d7@thorsis.com/
Reported-by: Steven Seeger <steven.seeger@flightsystems.net>
Closes: https://lore.kernel.org/linux-mtd/DM6PR05MB4506554457CF95191A670BDEF7062@DM6PR05MB4506.namprd05.prod.outlook.com/
Signed-off-by: Miquel Raynal <miquel.raynal@bootlin.com>
Tested-by: Sascha Hauer <s.hauer@pengutronix.de>
Link: https://lore.kernel.org/linux-mtd/20240516131320.579822-3-miquel.raynal@bootlin.com
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
2024-11-19 14:19:42 +01:00
..
chips mtd: cfi_cmdset_0001: Byte swap OTP info 2024-11-18 11:43:26 +01:00
devices Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
hyperbus Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
lpddr Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
maps mtd: maps: physmap-core: fix flash size larger than 32-bit 2024-11-19 08:44:54 +01:00
nand mtd: rawnand: Bypass a couple of sanity checks during NAND identification 2024-11-19 14:19:42 +01:00
parsers mtd: partitions: redboot: Added conversion of operands to a larger type 2024-11-19 14:19:32 +01:00
spi-nor Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
tests Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ubi ubi: correct the calculation of fastmap size 2024-11-19 09:22:16 +01:00
ftl.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
inftlcore.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
inftlmount.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Kconfig Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
Makefile Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mtd_blkdevs.c mtd: Fix gluebi NULL pointer dereference caused by ftl notifier 2024-11-18 12:12:25 +01:00
mtdblock.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mtdblock_ro.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mtdchar.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mtdconcat.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mtdcore.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mtdcore.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mtdoops.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mtdpart.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mtdpstore.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mtdsuper.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
mtdswap.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nftlcore.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
nftlmount.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
rfd_ftl.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sm_ftl.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
sm_ftl.h Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00
ssfdc.c Import A536BXXU9EXDC 2024-06-15 16:02:09 -03:00