From: sashiko-bot@kernel.org
To: "Adrián Larumbe" <adrian.larumbe@collabora.com>
Cc: dri-devel@lists.freedesktop.org
Subject: Re: [PATCH v7 08/17] drm/panfrost: Split subsystem init/reset from interrupt enablement
Date: Fri, 28 Aug 2026 21:11:39 +0000 [thread overview]
Message-ID: <20260828211139.E851E1F000E9@smtp.kernel.org> (raw)
In-Reply-To: <20260828-claude-fixes-v7-8-72a13b2c125d@collabora.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
Pre-existing issues:
- [High] Missing IRQ suspension in device probe error paths causes potential bus faults on shared IRQ lines.
--
commit 57c2c2f2f808cb53bd917f5b98f5700e0bc31b52
Author: Adrián Larumbe <adrian.larumbe@collabora.com>
drm/panfrost: Split subsystem init/reset from interrupt enablement
This commit decouples GPU, MMU, and Job Manager initialization and reset
sequences from interrupt enablement. It ensures subsystems only enable their
interrupts explicitly and handles IRQ toggling manually during probe, reset,
and removal.
> diff --git a/drivers/gpu/drm/panfrost/panfrost_device.c b/drivers/gpu/drm/panfrost/panfrost_device.c
> index 9e02fb5f73c82..99f7da2180f92 100644
> --- a/drivers/gpu/drm/panfrost/panfrost_device.c
> +++ b/drivers/gpu/drm/panfrost/panfrost_device.c
[ ... ]
> @@ -315,6 +338,7 @@ int panfrost_device_init(struct panfrost_device *pfdev)
>
> out_devreg:
> pm_runtime_disable(pfdev->base.dev);
> + panfrost_device_disable_hw(pfdev);
> panfrost_gem_fini(pfdev);
> out_perfcnt:
> panfrost_perfcnt_fini(pfdev);
> out_job:
> panfrost_jm_fini(pfdev);
> out_mmu:
> panfrost_mmu_fini(pfdev);
> out_gpu:
> panfrost_gpu_fini(pfdev);
[Severity: High]
This isn't a bug introduced by this patch, but is there a missing IRQ
suspension in the earlier error paths?
If probe fails early (for example, during panfrost_mmu_init() or later), the
error path jumps to out_mmu or out_gpu, calling panfrost_gpu_fini(),
panfrost_clk_fini(), etc. This powers off sub-blocks and disables clocks.
However, because panfrost_gpu_suspend_irq() (and its equivalents) are bypassed
on these early error paths, the is_suspended state remains 0. The IRQ was
already requested with devm_request_irq() in panfrost_gpu_init(), and is only
freed later during devres cleanup.
If the IRQ line is shared with another active device (IRQF_SHARED is used by
the driver), an interrupt in this window could cause panfrost_gpu_irq_handler()
to read GPU_FAULT_STATUS from disabled hardware:
drivers/gpu/drm/panfrost/panfrost_gpu.c:panfrost_gpu_irq_handler() {
if (test_bit(PANFROST_COMP_BIT_GPU, pfdev->is_suspended))
return IRQ_NONE;
fault_status = gpu_read(pfdev, GPU_FAULT_STATUS);
...
}
Can this lead to a bus fault and kernel panic on systems where the GPU IRQ is
shared?
--
Sashiko AI review · https://sashiko.dev/#/patchset/20260828-claude-fixes-v7-0-72a13b2c125d@collabora.com?part=8
next prev parent reply other threads:[~2026-08-28 21:11 UTC|newest]
Thread overview: 58+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-08-28 20:56 [PATCH v7 00/17] Collection of fixes for Panfrost: Perfcnt, RPM, refactorings Adrián Larumbe
2026-08-28 20:56 ` [PATCH v7 01/17] drm/panfrost: Move shrinker initialization and unplug one level down Adrián Larumbe
2026-09-01 11:28 ` Boris Brezillon
2026-09-02 15:36 ` Adrián Larumbe
2026-08-28 20:56 ` [PATCH v7 02/17] drm/panfrost: Move all DRM device initialisation into device_init() Adrián Larumbe
2026-09-01 11:49 ` Boris Brezillon
2026-09-02 15:38 ` Adrián Larumbe
2026-09-02 15:50 ` Boris Brezillon
2026-08-28 20:56 ` [PATCH v7 03/17] drm/panfrost: Move lock and modparam initialisations into their subsystems Adrián Larumbe
2026-08-28 21:14 ` sashiko-bot
2026-09-01 12:10 ` Boris Brezillon
2026-08-28 20:56 ` [PATCH v7 04/17] drm/panfrost: Move debugfs initialisation to relevant subsystems Adrián Larumbe
2026-09-01 12:30 ` Boris Brezillon
2026-09-02 15:40 ` Adrián Larumbe
2026-08-28 20:56 ` [PATCH v7 05/17] drm/panfrost: Skip NULL checks for clock enable/disabling Adrián Larumbe
2026-09-01 12:31 ` Boris Brezillon
2026-08-28 20:56 ` [PATCH v7 06/17] drm/panfrost: Consolidate device clock management and reset Adrián Larumbe
2026-09-01 12:38 ` Boris Brezillon
2026-09-02 15:41 ` Adrián Larumbe
2026-08-28 20:56 ` [PATCH v7 07/17] drm/panfrost: Stop all jobs before commencing device teardown Adrián Larumbe
2026-08-28 21:16 ` sashiko-bot
2026-09-01 12:58 ` Boris Brezillon
2026-08-28 20:56 ` [PATCH v7 08/17] drm/panfrost: Split subsystem init/reset from interrupt enablement Adrián Larumbe
2026-08-28 21:11 ` sashiko-bot [this message]
2026-09-01 13:08 ` Boris Brezillon
2026-09-02 15:41 ` Adrián Larumbe
2026-09-02 16:05 ` Boris Brezillon
2026-08-28 20:56 ` [PATCH v7 09/17] drm/panfrost: Fix PM refcnt and autosuspend issues at device probe/remove Adrián Larumbe
2026-08-28 21:09 ` sashiko-bot
2026-09-01 13:18 ` Boris Brezillon
2026-09-02 15:42 ` Adrián Larumbe
2026-09-02 16:14 ` Boris Brezillon
2026-08-28 20:56 ` [PATCH v7 10/17] drm/panfrost: Add warning messages to fatal error conditions Adrián Larumbe
2026-08-28 21:10 ` sashiko-bot
2026-09-01 13:20 ` Boris Brezillon
2026-08-28 20:56 ` [PATCH v7 11/17] drm/panfrost: Add debugfs knob for manually triggering a GPU reset Adrián Larumbe
2026-08-28 21:12 ` sashiko-bot
2026-09-01 13:27 ` Boris Brezillon
2026-09-02 15:42 ` Adrián Larumbe
2026-09-02 16:23 ` Boris Brezillon
2026-08-28 20:56 ` [PATCH v7 12/17] drm/panfrost: Move perfcnt GPU disable sequence into a helper Adrián Larumbe
2026-08-28 20:56 ` [PATCH v7 13/17] drm/panfrost: Skip cache flush/invalidate when enabling perfcnt Adrián Larumbe
2026-09-01 13:32 ` Boris Brezillon
2026-09-02 15:43 ` Adrián Larumbe
2026-09-02 16:29 ` Boris Brezillon
2026-08-28 20:56 ` [PATCH v7 14/17] drm/panfrost: Avoid cache flush after perfcnt sample in fully coherent systems Adrián Larumbe
2026-08-28 21:14 ` sashiko-bot
2026-09-01 13:37 ` Boris Brezillon
2026-09-02 15:44 ` Adrián Larumbe
2026-09-02 16:33 ` Boris Brezillon
2026-09-02 16:34 ` Boris Brezillon
2026-08-28 20:56 ` [PATCH v7 15/17] drm/panfrost: Introduce a reset lock Adrián Larumbe
2026-08-28 20:56 ` [PATCH v7 16/17] drm/panfrost: Fix races between perfcnt and reset sequence Adrián Larumbe
2026-08-28 21:17 ` sashiko-bot
2026-09-01 14:03 ` Boris Brezillon
2026-09-02 15:45 ` Adrián Larumbe
2026-09-02 16:51 ` Boris Brezillon
2026-08-28 20:56 ` [PATCH v7 17/17] drm/panfrost: Bump driver minor to reflect new DUMP IOCTL req field Adrián Larumbe
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=20260828211139.E851E1F000E9@smtp.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