From: sashiko-bot@kernel.org
To: "Raag Jadav" <raag.jadav@intel.com>, intel-xe@lists.freedesktop.org
Subject: Re: [PATCH v6 4/7] drm/xe: Make xe_device_declare_wedged() IRQ safe
Date: Wed, 14 Oct 2026 06:13:38 +0000 [thread overview]
Message-ID: <sashiko-outbox-170854@kernel.org> (raw)
In-Reply-To: <20261014055215.330408-5-raag.jadav@intel.com>
Thank you for your contribution! Sashiko AI review found 1 potential issue(s) to consider:
- [High] pm: MMIO access on suspended device during async wedge
--
commit bce18d1215504bf5f21999a5ea9ee776aca1fe38
Author: Raag Jadav <raag.jadav@intel.com>
drm/xe: Make xe_device_declare_wedged() IRQ safe
This commit defers wedge handling to a dedicated worker, allowing
xe_device_declare_wedged() to be safely called from IRQ contexts such as
handling MERT CAT errors.
> diff --git a/drivers/gpu/drm/xe/xe_device.c b/drivers/gpu/drm/xe/xe_device.c
> --- a/drivers/gpu/drm/xe/xe_device.c
> +++ b/drivers/gpu/drm/xe/xe_device.c
> @@ -1405,29 +1421,28 @@ void xe_device_declare_wedged(struct xe_device *xe, unsigned long method)
>
> if (!atomic_xchg(&xe->wedged.flag, 1)) {
> xe->needs_flr_on_fini = true;
> - xe_pm_runtime_get_noresume(xe);
> + pm_runtime_get_noresume(xe->drm.dev);
[Severity: High]
Does this allow MMIO access on a suspended device when a wedge is triggered
from an IRQ context?
If a hardware error (like a MERT CAT error) triggers an IRQ while the
device is in the RPM_SUSPENDED state, pm_runtime_get_noresume() will
increment the usage counter but will not wake the device up.
The GT wedge worker is then scheduled:
> xe_log_err_fatal(xe, WEDGED, -EIO, "Device declared wedged!\n");
> xe_err_once(xe, "IOCTLs and executions are now blocked!\n"
> "For recovery procedure, refer to %s\n"
> "Please file a _new_ bug report at %s\n",
> WEDGED_URL, XE_BUG_URL);
> - }
>
> - for_each_initialized_gt(gt, xe, id)
> - xe_gt_declare_wedged(gt);
> + for_each_initialized_gt(gt, xe, id)
> + xe_gt_declare_wedged(gt);
And runs asynchronously without ensuring the device is resumed:
gt_wedge_worker()
xe_uc_declare_wedged()
xe_guc_declare_wedged()
xe_guc_submit_wedge()
xe_guc_softreset()
xe_guc_mmio_send()
Since the device might still be suspended, this sequence can result in
xe_guc_mmio_send() performing MMIO accesses on powered-down hardware,
causing invalid register reads (e.g., returning 0xffffffff), hardware
timeouts, or PCIe bus errors.
--
Sashiko AI review · https://sashiko.dev/#/patchset/20261014055215.330408-1-raag.jadav@intel.com?part=4
next prev parent reply other threads:[~2026-10-14 6:13 UTC|newest]
Thread overview: 15+ messages / expand[flat|nested] mbox.gz Atom feed top
2026-10-14 5:51 [PATCH v6 0/7] Introduce xe_wedge Raag Jadav
2026-10-14 5:51 ` [PATCH v6 1/7] drm/xe/gt: Use GT ordered workqueue for wedging Raag Jadav
2026-10-14 6:14 ` sashiko-bot
2026-10-14 5:51 ` [PATCH v6 2/7] drm/xe: Drop xe_device_set_wedged_method() Raag Jadav
2026-10-14 5:51 ` [PATCH v6 3/7] drm/xe: Move xe_device_wedged_fini() registration to xe_device_probe_early() Raag Jadav
2026-10-14 5:51 ` [PATCH v6 4/7] drm/xe: Make xe_device_declare_wedged() IRQ safe Raag Jadav
2026-10-14 6:13 ` sashiko-bot [this message]
2026-10-14 5:51 ` [PATCH v6 5/7] drm/xe/pci_error: Flush GT wedge worker before bus reset Raag Jadav
2026-10-14 5:51 ` [PATCH v6 6/7] drm/xe: Introduce xe_wedge Raag Jadav
2026-10-14 6:05 ` sashiko-bot
2026-10-14 5:51 ` [PATCH v6 7/7] drm/xe/ras: Move xe_ras_process_errors() to xe_ras Raag Jadav
2026-10-14 6:14 ` sashiko-bot
2026-10-14 5:59 ` ✗ CI.checkpatch: warning for Introduce xe_wedge (rev5) Patchwork
2026-10-14 6:02 ` ✓ CI.KUnit: success " Patchwork
2026-10-14 11:33 ` ✓ Xe.CI.BAT: " Patchwork
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-170854@kernel.org \
--to=sashiko-bot@kernel.org \
--cc=intel-xe@lists.freedesktop.org \
--cc=raag.jadav@intel.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 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.