From: sashiko-bot@kernel.org
To: "Adrián Larumbe" <adrian.larumbe@collabora.com>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v13 06/15] drm/panfrost: Fix PM refcnt and autosuspend issues at device probe/remove
Date: Wed, 07 Oct 2026 23:55:50 +0000 [thread overview]
Message-ID: <sashiko-outbox-163441@kernel.org> (raw)
In-Reply-To: <20261008-claude-fixes-v13-6-d6a493185860@collabora.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] drm/panfrost: missing error check on pm_runtime_get_sync() in device removal causes SError
--
commit c158c940eec9a323d868411adbbd13b59c6449b8
Author: Adrián Larumbe <adrian.larumbe@collabora.com>
drm/panfrost: Fix PM refcnt and autosuspend issues at device probe/remove
This commit fixes issues where the panfrost device PM usage count was left
at 0 after probe failure, or increased monotonically after every module
reload. It manually adjusts the PM refcnt at probe and removal, and ensures
autosuspend functions are called properly.
> diff --git a/drivers/gpu/drm/panfrost/panfrost_drv.c b/drivers/gpu/drm/panfrost/panfrost_drv.c
> index 55fc22e8d4d4e..907d4a14a0b55 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_drv.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_drv.c
[ ... ]
> @@ -884,9 +892,12 @@ static void panfrost_remove(struct platform_device *pdev)
> drm_dev_unregister(&pfdev->base);
>
> pm_runtime_get_sync(pfdev->base.dev);
> + pm_runtime_dont_use_autosuspend(pfdev->base.dev);
> pm_runtime_disable(pfdev->base.dev);
> panfrost_device_fini(pfdev);
[Severity: High]
Does ignoring the return value of pm_runtime_get_sync() in panfrost_remove()
allow the driver to write to unpowered hardware?
During device removal, if the power domain or regulators fail to resume the
device, pm_runtime_get_sync() returns a negative error code. Because the
code proceeds unconditionally to call panfrost_device_fini(), it invokes
panfrost_gpu_fini() and panfrost_perfcnt_fini(), which perform direct MMIO
register writes (such as to SHADER_PWROFF_LO and GPU_PERFCNT_CFG).
Accessing these registers while the hardware is physically powered off can
cause an Oops due to a synchronous external abort on ARM architectures.
Note that even if follow-up patches attempt to address this by wrapping the
call in drm_WARN_ON(), that does not abort or bypass the subsequent hardware
accesses. The system would still crash following the warning.
> pm_runtime_set_suspended(pfdev->base.dev);
> + pm_runtime_put_noidle(pfdev->base.dev);
> +
> }
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261008-claude-fixes-v13-0-d6a493185860@collabora.com?part=6
next prev parent reply other threads:[~2026-10-07 23:55 UTC|newest]
Thread overview: 22+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-07 23:42 [PATCH v13 00/15] Collection of fixes for Panfrost: Perfcnt, RPM, refactorings Adrián Larumbe
2026-10-07 23:42 ` [PATCH v13 01/15] drm/panfrost: Move shrinker initialization and unplug one level down Adrián Larumbe
2026-10-08 16:46 ` kernel test robot
2026-10-07 23:42 ` [PATCH v13 02/15] drm/panfrost: Move lock and modparam initialisations into their subsystems Adrián Larumbe
2026-10-07 23:42 ` [PATCH v13 03/15] drm/panfrost: Move debugfs initialisation to relevant subsystems Adrián Larumbe
2026-10-07 23:42 ` [PATCH v13 04/15] drm/panfrost: Skip NULL checks for clock enable/disabling Adrián Larumbe
2026-10-07 23:42 ` [PATCH v13 05/15] drm/panfrost: Consolidate device clock management and reset Adrián Larumbe
2026-10-07 23:42 ` [PATCH v13 06/15] drm/panfrost: Fix PM refcnt and autosuspend issues at device probe/remove Adrián Larumbe
2026-10-07 23:55 ` sashiko-bot [this message]
2026-10-07 23:42 ` [PATCH v13 07/15] drm/panfrost: Explicitly enable MMU interrupts at device init Adrián Larumbe
2026-10-07 23:42 ` [PATCH v13 08/15] drm/panfrost: Move all DRM device initialisation into device_init() Adrián Larumbe
2026-10-07 23:54 ` sashiko-bot
2026-10-07 23:42 ` [PATCH v13 09/15] drm/panfrost: Warn of RPM get failure at device remove time Adrián Larumbe
2026-10-07 23:42 ` [PATCH v13 10/15] drm/panfrost: Add debugfs knob for manually triggering a GPU reset Adrián Larumbe
2026-10-08 0:00 ` sashiko-bot
2026-10-07 23:42 ` [PATCH v13 11/15] drm/panfrost: Move perfcnt GPU disable sequence into a helper Adrián Larumbe
2026-10-07 23:42 ` [PATCH v13 12/15] drm/panfrost: Skip cache flush/invalidate when enabling perfcnt Adrián Larumbe
2026-10-07 23:42 ` [PATCH v13 13/15] drm/panfrost: Avoid cache flush after perfcnt sample in fully coherent systems Adrián Larumbe
2026-10-07 23:55 ` sashiko-bot
2026-10-07 23:42 ` [PATCH v13 14/15] drm/panfrost: Introduce a reset lock Adrián Larumbe
2026-10-07 23:42 ` [PATCH v13 15/15] drm/panfrost: Fix races between perfcnt and reset sequence Adrián Larumbe
2026-10-07 23:58 ` 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-163441@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=adrian.larumbe@collabora.com \
--cc=dri-devel@lists.freedesktop.org \
--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