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 6/7] spi: cadence-xspi: Add support for panic writes
Date: Tue, 13 Oct 2026 14:29:23 +0000 [thread overview]
Message-ID: <sashiko-outbox-169909@kernel.org> (raw)
In-Reply-To: <20261013141350.189996-7-paul.cercueil@bootlin.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] spi: cadence-xspi: Data corruption in panic writes due to stale interrupt status
--
commit f18a015e23b878b52027e1103a55a1cf4327cf51
Author: Tanmay Jagdale <tanmay@marvell.com>
spi: cadence-xspi: Add support for panic writes
Advertise support for panic writes. When a memory op is received with
the 'panic' flag set, the driver will then work without relying on
interrupts and without sleeping.
> diff --git a/drivers/spi/spi-cadence-xspi.c b/drivers/spi/spi-cadence-xspi.c
> index 185dffda54bbd..6310d0aa2d211 100644
> --- a/drivers/spi/spi-cadence-xspi.c
> +++ b/drivers/spi/spi-cadence-xspi.c
[ ... ]
> @@ -353,40 +358,33 @@ struct cdns_xspi_dev {
> int current_xfer_qword;
> };
[ ... ]
> static bool cdns_xspi_is_sdma_ready(struct cdns_xspi_dev *cdns_xspi, bool sleep)
> {
> u32 ctrl_stat;
>
> - if (readl_relaxed_poll_timeout
> - (cdns_xspi->iobase + CDNS_XSPI_INTR_STATUS_REG,
> - ctrl_stat,
> - (ctrl_stat & CDNS_XSPI_SDMA_TRIGGER),
> - sleep ? MRVL_XSPI_POLL_DELAY_US : 0,
> - sleep ? MRVL_XSPI_POLL_TIMEOUT_US : 0)) {
> + if (cdns_readl_poll(cdns_xspi->iobase + CDNS_XSPI_INTR_STATUS_REG,
> + ctrl_stat, (ctrl_stat & CDNS_XSPI_SDMA_TRIGGER),
> + MRVL_XSPI_POLL_DELAY_US, MRVL_XSPI_POLL_TIMEOUT_US,
> + sleep)) {
> return false;
> }
[ ... ]
> @@ -558,14 +556,14 @@ static int cdns_xspi_send_stig_command(struct cdns_xspi_dev *cdns_xspi,
> int ret;
> int dummybytes = op->dummy.nbytes;
>
> - ret = cdns_xspi_wait_for_controller_idle(cdns_xspi);
> + ret = cdns_xspi_wait_for_controller_idle(cdns_xspi, !op->panic_write);
> if (ret < 0)
> return -EIO;
>
> writel(FIELD_PREP(CDNS_XSPI_CTRL_WORK_MODE, CDNS_XSPI_WORK_MODE_STIG),
> cdns_xspi->iobase + CDNS_XSPI_CTRL_CONFIG_REG);
>
> - if (cdns_xspi->irq >= 0)
> + if (cdns_xspi->irq >= 0 && !op->panic_write)
> cdns_xspi->set_interrupts_handler(cdns_xspi, true);
[Severity: High]
Does the driver need to clear the sticky status bits in
CDNS_XSPI_INTR_STATUS_REG when bypassing the interrupt handler for panic
writes?
If a kernel panic occurs immediately after a previous hardware operation
finishes but before the interrupt handler can execute, bits like
CDNS_XSPI_SDMA_TRIGGER could remain set in the hardware status register.
Because the interrupt handler is bypassed here, would the polling loop in
cdns_xspi_is_sdma_ready() immediately read the stale CDNS_XSPI_SDMA_TRIGGER
bit as true and proceed prematurely before the hardware has prepared the new
transfer?
> cdns_xspi->sdma_error = false;
>
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261013141350.189996-1-paul.cercueil@bootlin.com?part=6
______________________________________________________
Linux MTD discussion mailing list
http://lists.infradead.org/mailman/listinfo/linux-mtd/
next prev parent reply other threads:[~2026-10-13 14:29 UTC|newest]
Thread overview: 32+ 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:33 ` Paul Cercueil
2026-10-13 15:57 ` Miquel Raynal
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
2026-10-13 15:29 ` Paul Cercueil
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 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 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 [this message]
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-169909@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.