lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite: Windows password security audit tool. GUI, reports in PDF.
[<prev] [next>] [<thread-prev] [day] [month] [year] [list]
Message-ID: <5fc6b07f-4998-432f-9f9e-197ed08c2d16@iopsys.eu>
Date: Fri, 30 Jan 2026 03:05:54 +0300
From: Mikhail Kshevetskiy <mikhail.kshevetskiy@...sys.eu>
To: David LaPorte <dalaport@...zon.com>,
 Miquel Raynal <miquel.raynal@...tlin.com>,
 Richard Weinberger <richard@....at>, Vignesh Raghavendra <vigneshr@...com>,
 Tudor Ambarus <tudor.ambarus@...aro.org>,
 Martin Kurbanov <mmkurbanov@...utedevices.com>,
 Cheng Ming Lin <chengminglin@...c.com.tw>,
 Pratyush Yadav <pratyush@...nel.org>, linux-mtd@...ts.infradead.org,
 linux-kernel@...r.kernel.org
Cc: Gunnar Kudrjavets <gunnarku@...zon.com>
Subject: Re: [PATCH] mtd: spinand: Disable continuous read during probe


On 1/30/26 01:15, David LaPorte wrote:
> [You don't often get email from dalaport@...zon.com. Learn why this is important at https://aka.ms/LearnAboutSenderIdentification ]
>
> Macronix serial NAND devices with continuous read support do not
> clear the configuration register on soft reset and lack a hardware
> reset pin. When continuous read is interrupted (e.g., during reboot),
> the feature remains enabled at the device level.
>
> With continuous read enabled, the OOB area becomes inaccessible and
> all reads are instead directed to the main area. As a result, during
> partition allocation as part of MTD device registration, the first two
> bytes of the main area for the master block are read and indicate that
> the block is bad. This process repeats for every subsequent block for
> the partition.
>
> All reads and writes that reference the BBT find no good blocks and
> fail.
>
> The only paths for recovery from this state are triggering the
> continuous read feature by way of raw MTD reads or through a NAND
> device power drain.
>
> Disable continuous read explicitly during spinand probe to ensure
> quiescent feature state.
>
> Fixes: 631cfdd0520d ("mtd: spi-nand: Add continuous read support")
> Signed-off-by: David LaPorte <dalaport@...zon.com>
> Reviewed-by: Gunnar Kudrjavets <gunnarku@...zon.com>
> ---
> Testing details:
> - Instrumented feature enablement and verified fix with affected Macronix
>   serial NAND device:  warm reboot without patch marks all blocks bad
>   during partition allocation; with patch applied, device registers
>   cleanly with no bad blocks marked
> - Patch cherry-picks cleanly to mainline v6.19-rc6 and builds without
>   warnings
> - Boot tested mainline + patch on aarch64 host without SPI interface
> ---
>  drivers/mtd/nand/spi/core.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/drivers/mtd/nand/spi/core.c b/drivers/mtd/nand/spi/core.c
> index d207286572d8..1fb05ac8678b 100644
> --- a/drivers/mtd/nand/spi/core.c
> +++ b/drivers/mtd/nand/spi/core.c
> @@ -859,6 +859,7 @@ static void spinand_cont_read_init(struct spinand_device *spinand)
>             (engine_type == NAND_ECC_ENGINE_TYPE_ON_DIE ||
>              engine_type == NAND_ECC_ENGINE_TYPE_NONE)) {
>                 spinand->cont_read_possible = true;
> +               spinand_cont_read_enable(spinand, false);

I think a comment should be added here explaining why you disable
cont_read here

>         }
>  }
>
> --
> 2.43.0
>

Powered by blists - more mailing lists

Powered by Openwall GNU/*/Linux Powered by OpenVZ