From: sashiko-bot@kernel.org
To: "Peng Fan (OSS)" <peng.fan@oss.nxp.com>
Cc: Frank.Li@kernel.org, imx@lists.linux.dev, linux-gpio@vger.kernel.org
Subject: Re: [PATCH v5 09/13] gpio: mxc: use cleanup guard for pm_runtime_get_noresume() balance
Date: Fri, 09 Oct 2026 18:19:18 +0000 [thread overview]
Message-ID: <sashiko-outbox-165930@kernel.org> (raw)
In-Reply-To: <20261010-gpio-mxc-cleanup-v5-9-1e59e6ddfa00@nxp.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] pm: double put of usage counter due to no_free_ptr() self-assignment
--
commit f4335cfd7512992cdd6d3fcb1a49da9aabbb176c
Author: Peng Fan <peng.fan@nxp.com>
gpio: mxc: use cleanup guard for pm_runtime_get_noresume() balance
This commit replaces the manual pm_runtime_put_noidle() error path cleanup
with a __free scope-based guard in mxc_gpio_probe(). It also attempts to
disarm the guard on the success path before calling
pm_runtime_put_autosuspend().
> diff --git a/drivers/gpio/gpio-mxc.c b/drivers/gpio/gpio-mxc.c
> index 5ae9cdee6424d..3d5a6566d3f43 100644
> --- a/drivers/gpio/gpio-mxc.c
> +++ b/drivers/gpio/gpio-mxc.c
[ ... ]
> @@ -556,6 +561,8 @@ static int mxc_gpio_probe(struct platform_device *pdev)
> mxc_update_irq_chained_handler(port, true);
>
> platform_set_drvdata(pdev, port);
> +
> + pm_guard = no_free_ptr(pm_guard);
> pm_runtime_put_autosuspend(dev);
[Severity: High]
Does this self-assignment defeat the no_free_ptr() cleanup inhibition,
causing a double-put of the usage counter?
Because no_free_ptr() is marked __must_check, assigning it back to the
same variable is a common attempt to silence compiler warnings. However,
no_free_ptr(pm_guard) internally sets pm_guard to NULL but evaluates to
the original pointer value.
By assigning the evaluated result back to pm_guard, the NULL value is
immediately overwritten with the original pointer, leaving the guard
armed.
When mxc_gpio_probe() returns successfully, the cleanup handler will execute
pm_runtime_put_noidle(dev) because pm_guard is still armed. Since this path
also explicitly calls pm_runtime_put_autosuspend(dev) right after the
assignment, will this result in the usage counter being decremented twice?
>
> return 0;
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261010-gpio-mxc-cleanup-v5-0-1e59e6ddfa00@nxp.com?part=9
next prev parent reply other threads:[~2026-10-09 18:19 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-09 18:05 [PATCH v5 00/13] gpio: mxc: bug fixes and probe cleanup Peng Fan (OSS)
2026-10-09 18:05 ` [PATCH v5 01/13] gpio: mxc: fix race between chained IRQ handler install and probe completion Peng Fan (OSS)
2026-10-09 18:22 ` sashiko-bot
2026-10-09 18:29 ` Frank Li
2026-10-09 18:05 ` [PATCH v5 02/13] gpio: mxc: fix both_edges bit operations Peng Fan (OSS)
2026-10-09 18:33 ` Frank Li
2026-10-09 18:05 ` [PATCH v5 03/13] gpio: mxc: fix wakeup_pads " Peng Fan (OSS)
2026-10-09 18:35 ` Frank Li
2026-10-09 18:05 ` [PATCH v5 04/13] gpio: mxc: simplify gpio_set_wake_irq Peng Fan (OSS)
2026-10-09 18:39 ` Frank Li
2026-10-09 18:05 ` [PATCH v5 05/13] gpio: mxc: use for_each_set_bit() to iterate wakeup pads Peng Fan (OSS)
2026-10-09 18:05 ` [PATCH v5 06/13] gpio: mxc: replace of_device_is_compatible() with hwdata flags Peng Fan (OSS)
2026-10-09 18:05 ` [PATCH v5 07/13] gpio: mxc: convert pad wakeup compatible checks to " Peng Fan (OSS)
2026-10-09 18:45 ` Frank Li
2026-10-09 18:05 ` [PATCH v5 08/13] gpio: mxc: use local dev variable Peng Fan (OSS)
2026-10-09 18:05 ` [PATCH v5 09/13] gpio: mxc: use cleanup guard for pm_runtime_get_noresume() balance Peng Fan (OSS)
2026-10-09 18:19 ` sashiko-bot [this message]
2026-10-09 18:51 ` Frank Li
2026-10-09 18:05 ` [PATCH v5 10/13] gpio: mxc: convert probe error handling to devres Peng Fan (OSS)
2026-10-09 18:23 ` sashiko-bot
2026-10-09 18:53 ` Frank Li
2026-10-09 18:05 ` [PATCH v5 11/13] gpio: mxc: switch probe error paths to dev_err_probe() Peng Fan (OSS)
2026-10-09 18:21 ` sashiko-bot
2026-10-09 18:55 ` Frank Li
2026-10-09 18:05 ` [PATCH v5 12/13] gpio: mxc: introduce MXC_ICR macros and use field_prep/field_get Peng Fan (OSS)
2026-10-09 18:58 ` Frank Li
2026-10-09 18:05 ` [PATCH v5 13/13] gpio: mxc: use BIT() macro for single-bit operations Peng Fan (OSS)
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-165930@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=Frank.Li@kernel.org \
--cc=imx@lists.linux.dev \
--cc=linux-gpio@vger.kernel.org \
--cc=peng.fan@oss.nxp.com \
--cc=sashiko-reviews@lists.linux.dev \
/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 a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox