All of lore.kernel.org
 help / color / mirror / Atom feed
From: sashiko-bot@kernel.org
To: "Paul Cercueil" <paul.cercueil@bootlin.com>,
	"Pratyush Yadav" <pratyush@kernel.org>,
	"Michael Walle" <mwalle@kernel.org>,
	"Takahiro Kuwano" <takahiro.kuwano@infineon.com>,
	"Miquel Raynal" <miquel.raynal@bootlin.com>,
	"Richard Weinberger" <richard@nod.at>,
	"Vignesh Raghavendra" <vigneshr@ti.com>,
	"Mark Brown" <broonie@kernel.org>,
	"Thomas Petazzoni" <thomas.petazzoni@bootlin.com>
Cc: "Kees Cook" <kees@kernel.org>, "Tony Luck" <tony.luck@intel.com>,
	"Guilherme G . Piccoli" <gpiccoli@igalia.com>,
	linux-mtd@lists.infradead.org,
	"Bharat Bhushan" <bbhushan2@marvell.com>,
	"Sunil Kovvuri Goutham" <sgoutham@marvell.com>,
	"Tanmay Jagdale" <tanmay@marvell.com>
Subject: Re: [PATCH v2 2/7] mtd: spi-nor: Wait for NOR ready with poll_timeout_us()
Date: Tue, 13 Oct 2026 14:30:15 +0000	[thread overview]
Message-ID: <sashiko-outbox-169912@kernel.org> (raw)
In-Reply-To: <20261013141350.189996-3-paul.cercueil@bootlin.com>

Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] mtd: spi-nor: 32-bit integer overflow in timeout_ms * 1000
--

commit d88f329aca4b57db5e4ba0a0fc748ee4d7440aba
Author: Tanmay Jagdale <tanmay@marvell.com>

mtd: spi-nor: Wait for NOR ready with poll_timeout_us()

Instead of polling for the spi_nor_ready() with a custom loop, use
poll_timeout_us(). The sleep period between two polls is set to 100 us
which I think should be fine.

> diff --git a/drivers/mtd/spi-nor/core.c b/drivers/mtd/spi-nor/core.c
> index 8bc117b46e028..2509fb983d4f2 100644
> --- a/drivers/mtd/spi-nor/core.c
> +++ b/drivers/mtd/spi-nor/core.c
[ ... ]
> @@ -712,29 +713,21 @@ static int spi_nor_ready(struct spi_nor *nor)
>   * Return: 0 on success, -errno otherwise.
>   */
>  static int spi_nor_wait_till_ready_with_timeout(struct spi_nor *nor,
> -						unsigned long timeout_jiffies)
> +						unsigned long timeout_ms)
>  {
> -	unsigned long deadline;
> -	int timeout = 0, ret;
> +	int ret, status;
>  
> -	deadline = jiffies + timeout_jiffies;
> -
> -	while (!timeout) {
> -		if (time_after_eq(jiffies, deadline))
> -			timeout = 1;
> -
> -		ret = spi_nor_ready(nor);
> -		if (ret < 0)
> -			return ret;
> -		if (ret)
> -			return 0;
> -
> -		cond_resched();
> +	ret = poll_timeout_us(status = spi_nor_ready(nor), status,
> +			      100, timeout_ms * 1000, false);
                                   ^^^^^^^^^^^^^^^^^^^
[Severity: High]
Can this multiplication overflow on 32-bit systems?

In spi_nor_erase_dice(), the timeout scales with the flash size. For a 256MB
flash, timeout_ms evaluates to 40000UL * 128 = 5,120,000.

Because both operands are 32-bit types on 32-bit platforms, the arithmetic
could overflow ULONG_MAX (4,294,967,295), wrapping to 825,032,704 before being
implicitly promoted to u64 inside the poll_timeout_us macro.

This truncates the wait timeout from ~85 minutes to ~13.7 minutes, which could
cause legitimately slow erase operations on large flashes to prematurely abort
with -ETIMEDOUT.

> +	if (ret < 0) {
> -	dev_dbg(nor->dev, "flash operation timed out\n");
> +		dev_dbg(nor->dev, "flash operation timed out\n");
> +		return ret;
> +	}

-- 
Sashiko AI review · https://sashiko.dev/#/patchset/20261013141350.189996-1-paul.cercueil@bootlin.com?part=2

______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/

  reply	other threads:[~2026-10-13 14:30 UTC|newest]

Thread overview: 27+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2026-10-13 14:13 [PATCH v2 0/7] spi: Add support for panic mem writes Paul Cercueil
2026-10-13 14:13 ` Paul Cercueil
2026-10-13 14:13 ` [PATCH v2 1/7] spi: spi-mem: " Paul Cercueil
2026-10-13 14:13   ` Paul Cercueil
2026-10-13 14:23   ` sashiko-bot
2026-10-13 15:33     ` Paul Cercueil
2026-10-13 15:57       ` Miquel Raynal
2026-10-13 14:13 ` [PATCH v2 2/7] mtd: spi-nor: Wait for NOR ready with poll_timeout_us() Paul Cercueil
2026-10-13 14:13   ` Paul Cercueil
2026-10-13 14:30   ` sashiko-bot [this message]
2026-10-13 15:29     ` Paul Cercueil
2026-10-13 14:13 ` [PATCH v2 3/7] mtd: spi-nor: Add support for panic writes Paul Cercueil
2026-10-13 14:13   ` Paul Cercueil
2026-10-13 14:27   ` sashiko-bot
2026-10-13 15:35     ` Paul Cercueil
2026-10-13 14:13 ` [PATCH v2 4/7] spi: cadence-xspi: Clear "SDMA ready" IRQ flag after polling Paul Cercueil
2026-10-13 14:13   ` Paul Cercueil
2026-10-13 14:13 ` [PATCH v2 5/7] spi: cadence-xspi: Add irq-less support Paul Cercueil
2026-10-13 14:13   ` Paul Cercueil
2026-10-13 14:33   ` sashiko-bot
2026-10-13 15:40     ` Paul Cercueil
2026-10-13 14:13 ` [PATCH v2 6/7] spi: cadence-xspi: Add support for panic writes Paul Cercueil
2026-10-13 14:13   ` Paul Cercueil
2026-10-13 14:29   ` sashiko-bot
2026-10-13 14:13 ` [PATCH v2 7/7] spi: dt-bindings: cadence: Make XSPI's IRQ line optional Paul Cercueil
2026-10-13 14:13   ` Paul Cercueil
2026-10-13 14:20   ` sashiko-bot

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=sashiko-outbox-169912@kernel.org \
    --to=sashiko-bot@kernel.org \
    --cc=bbhushan2@marvell.com \
    --cc=broonie@kernel.org \
    --cc=gpiccoli@igalia.com \
    --cc=kees@kernel.org \
    --cc=linux-mtd@lists.infradead.org \
    --cc=miquel.raynal@bootlin.com \
    --cc=mwalle@kernel.org \
    --cc=paul.cercueil@bootlin.com \
    --cc=pratyush@kernel.org \
    --cc=richard@nod.at \
    --cc=sashiko-reviews@lists.linux.dev \
    --cc=sgoutham@marvell.com \
    --cc=takahiro.kuwano@infineon.com \
    --cc=tanmay@marvell.com \
    --cc=thomas.petazzoni@bootlin.com \
    --cc=tony.luck@intel.com \
    --cc=vigneshr@ti.com \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.