From: sashiko-bot@kernel.org
To: ziniu.wang_1@oss.nxp.com
Cc: Frank.Li@kernel.org, imx@lists.linux.dev
Subject: Re: [PATCH v6 3/8] mmc: sdhci-esdhc-imx: fix esdhc_change_pinstate() to allow default state restore
Date: Mon, 13 Jul 2026 04:54:24 +0000 [thread overview]
Message-ID: <20260713045424.9A14A1F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260713043904.4144172-4-ziniu.wang_1@oss.nxp.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Pre-existing issues:
- [High] On non-uSDHC boards, requesting high-speed UHS timings via a malformed device tree triggers a NULL pointer dereference in the pinctrl subsystem because `pins_100mhz` and `pins_200mhz` are checked with `IS_ERR()` instead of `IS_ERR_OR_NULL()`.
--
--- Patch [3]: [PATCH v6 3/8] mmc: sdhci-esdhc-imx: fix esdhc_change_pinstate() to allow default state restore ---
commit dd1c1cd99a70d068cd94016148812cfb2f68ca96
Author: Luke Wang <ziniu.wang_1@nxp.com>
mmc: sdhci-esdhc-imx: fix esdhc_change_pinstate() to allow default state restore
This commit moves the checks for pins_100mhz and pins_200mhz into their
respective switch cases in esdhc_change_pinstate(). This prevents the checks
from unconditionally blocking the default case and allows devices without
high-speed pin states to restore their default pin configuration.
> diff --git a/drivers/mmc/host/sdhci-esdhc-imx.c b/drivers/mmc/host/sdhci-esdhc-imx.c
> index 685e508c61279..2da5c8ab3e622 100644
> --- a/drivers/mmc/host/sdhci-esdhc-imx.c
> +++ b/drivers/mmc/host/sdhci-esdhc-imx.c
> @@ -1326,19 +1326,21 @@ static int esdhc_change_pinstate(struct sdhci_host *host,
>
> dev_dbg(mmc_dev(host->mmc), "change pinctrl state for uhs %d\n", uhs);
>
> - if (IS_ERR(imx_data->pinctrl) ||
> - IS_ERR(imx_data->pins_100mhz) ||
> - IS_ERR(imx_data->pins_200mhz))
> + if (IS_ERR(imx_data->pinctrl))
> return -EINVAL;
>
> switch (uhs) {
> case MMC_TIMING_UHS_SDR50:
> case MMC_TIMING_UHS_DDR50:
> + if (IS_ERR(imx_data->pins_100mhz))
> + return -EINVAL;
[Severity: High]
This is a pre-existing issue, but will IS_ERR() properly catch a NULL
pointer if pins_100mhz is uninitialized?
For non-uSDHC boards, imx_data->pins_100mhz can be NULL. If a malformed
device tree specifies UHS timings, IS_ERR(NULL) evaluates to false. Does
this result in pinctrl being set to NULL and later passed to
pinctrl_select_state(), causing a kernel panic?
Would it be safer to use IS_ERR_OR_NULL() here and for pins_200mhz below?
> pinctrl = imx_data->pins_100mhz;
> break;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260713043904.4144172-1-ziniu.wang_1@oss.nxp.com?part=3
next prev parent reply other threads:[~2026-07-13 4:54 UTC|newest]
Thread overview: 19+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-07-13 4:38 [PATCH v6 0/8] mmc: sdhci-esdhc-imx: fix SDIO suspend/resume issues ziniu.wang_1
2026-07-13 4:38 ` [PATCH v6 1/8] mmc: sdhci-esdhc-imx: remove unnecessary mmc_card_wake_sdio_irq check for tuning save/restore ziniu.wang_1
2026-07-13 4:38 ` [PATCH v6 2/8] mmc: sdhci-esdhc-imx: restore DLL override for DDR modes on resume ziniu.wang_1
2026-07-13 5:01 ` sashiko-bot
2026-07-13 4:38 ` [PATCH v6 3/8] mmc: sdhci-esdhc-imx: fix esdhc_change_pinstate() to allow default state restore ziniu.wang_1
2026-07-13 4:54 ` sashiko-bot [this message]
2026-07-13 14:49 ` Frank Li
2026-07-13 4:39 ` [PATCH v6 4/8] mmc: sdhci-esdhc-imx: restore pinctrl before restoring ios timing on resume ziniu.wang_1
2026-07-13 5:02 ` sashiko-bot
2026-07-13 4:39 ` [PATCH v6 5/8] mmc: sdhci-esdhc-imx: disable irq during suspend to fix unhandled interrupt ziniu.wang_1
2026-07-13 4:39 ` [PATCH v6 6/8] mmc: sdhci-esdhc-imx: use pm_runtime_resume_and_get() in suspend ziniu.wang_1
2026-07-13 4:50 ` sashiko-bot
2026-07-13 4:39 ` [PATCH v6 7/8] mmc: sdhci-esdhc-imx: make non-fatal errors non-blocking " ziniu.wang_1
2026-07-13 14:52 ` Frank Li
2026-07-14 3:01 ` Luke Wang (OSS)
2026-07-13 4:39 ` [PATCH v6 8/8] mmc: sdhci-esdhc-imx: fix resume error handling ziniu.wang_1
2026-07-13 4:50 ` sashiko-bot
2026-07-13 14:58 ` Frank Li
2026-07-14 7:51 ` [PATCH v6 0/8] mmc: sdhci-esdhc-imx: fix SDIO suspend/resume issues Adrian Hunter
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=20260713045424.9A14A1F000E9@smtp.kernel.org \
--to=sashiko-bot@kernel.org \
--cc=Frank.Li@kernel.org \
--cc=imx@lists.linux.dev \
--cc=sashiko-reviews@lists.linux.dev \
--cc=ziniu.wang_1@oss.nxp.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.