Re: MTD: Patch to spi-nor hangs Lenovo ThinkPad X1 on suspend, sleep, and shutdown.

From: Todd Brandt
Date: Tue May 16 2023 - 18:57:14 EST


I just sent out a fix patch for 6.4-rc2, let's move the discussion to
that mail:

[PATCH] MTD SPI-NOR: BUG FIX of divide by zero in new n_banks value
https://marc.info/?l=linux-kernel&m=168427739123254&w=2

On Tue, 2023-05-16 at 12:12 -0700, Todd Brandt wrote:
> This is the kernel bugzilla:
> https://bugzilla.kernel.org/show_bug.cgi?id=217448
>
> This is the system I'm having troubles with:
>
> os-version : Ubuntu 20.04.2 LTS
> baseboard-manufacturer : LENOVO
> baseboard-product-name : 20QA000FUS
> baseboard-serial-number : W1KS11R111D
> baseboard-version : SDK0J40697 WIN
> bios-release-date : 05/20/2021
> bios-vendor : LENOVO
> bios-version : N2MET49W (1.14 )
> chassis-manufacturer : LENOVO
> chassis-serial-number : R911Q4MM
> chassis-version : None
> processor-manufacturer : Intel(R) Corporation
> processor-version : 11th Gen Intel(R) Core(TM) i7-1160G7 @
> 1.20GHz
> system-manufacturer : LENOVO
> system-product-name : 20QA000FUS
> system-serial-number : R911Q4MM
> system-version : ThinkPad X1 Titanium Gen 1
> cpucount : 8
> memtotal : 15939728 kB
> memfree : 8428028 kB
>
> Ever since 6.4-rc1 this system has hung on every S3/S2idle suspend
> and
> shutdown during reboot. I've bisected it to a patch to the MTD: SPI-
> NOR
> subsystem about introducing the "concept of a bank"
>
> 9d6c5d64f0288a814d4435b7da39e360a4c39e40 is the first bad commit
> commit 9d6c5d64f0288a814d4435b7da39e360a4c39e40
> Author: Miquel Raynal <miquel.raynal@xxxxxxxxxxx>
> Date: Tue Mar 28 17:40:58 2023 +0200
>
> mtd: spi-nor: Introduce the concept of bank
>
> SPI NOR chips are made of pages, which gathered in small groups
> make
> (erase) sectors. Sectors, gathered together, make banks inside
> the
> chip. Until now, there was only one bank per device supported,
> but
> we
> are about to introduce support for new chips featuring several
> banks (up
> to 4 so far) where different operations may happen in parallel.
>
> Let's allow describing these additional bank parameters, and
> let's
> do
> this independently of any other value (like the number of
> sectors)
> with
> an absolute value.
>
> By default we consider that all chips have a single bank.
>
> Signed-off-by: Miquel Raynal <miquel.raynal@xxxxxxxxxxx>
> Reviewed-by: Pratyush Yadav <pratyush@xxxxxxxxxx>
> Link:
>
https://lore.kernel.org/r/20230328154105.448540-2-miquel.raynal@xxxxxxxxxxx
> Signed-off-by: Tudor Ambarus <tudor.ambarus@xxxxxxxxxx>
>
> drivers/mtd/spi-nor/core.c | 1 +
> drivers/mtd/spi-nor/core.h | 16 +++++++++++-----
> drivers/mtd/spi-nor/xilinx.c | 1 +
> 3 files changed, 13 insertions(+), 5 deletions(-)
>
> Basically something about the new code is improperly handling the
> memory size on this machine. It's not complex but I haven't dug any
> deeper since I want it posted as quickly as possible. To reproduce,
> run
> any of these 3 commands and the system will hang:
>
> echo freeze > /sys/power/state
> echo mem > /sys/power/state
> sudo reboot