CVE-2026-98391: drm/xe: Guard page-fault worker with runtime PM check

Published Oct 14, 2026
·
Updated

In the Linux kernel, the following vulnerability has been resolved:

drm/xe: Guard page-fault worker with runtime PM check

During VM teardown, the VM's runtime PM reference is dropped asynchronously, allowing the device to autosuspend while stale page faults belonging to the now-dead VM are still queued. When the page-fault worker later tries to ack one of these, it calls into gucctsendlocked() on an already-suspended device, tripping:

Assertion !xepmruntimesuspended(xe) failed!   WARNING at xedevice.c:1267 xedeviceassertmemaccess+0x11c/0x140 [xe]

A live VM/exec queue always holds a PM reference while it has outstanding work, so if the device is suspended at ack time, the owning context is already gone and the fault is stale.

Take a runtime PM reference across the entire pagefault queue worker to safely deliver acks for torn-down VMs.

v3: - Move PM ref to the generic xepagefaultqueuework using guard(xepmruntime)(xe) instead of tracking it in the GuC backend(Matt Brost).

v2: - Hold PM ref across the entire batch (begin/end) instead of per-ack. This prevents the device from autosuspending mid-batch, which would leave writeonly acks written but the end flush skipped, and skip counter++, desyncing the cadence check.(Himal) - Add a comment explaining stale faults.(Himal)

(cherry picked from commit fcc2431d2213dc4d04250c4f1ae87d9c3ae0d455) [Rodrigo: Added xedevice struct for compatibility while cherry-picking]

Affected Software

1 affected component
Linux Linux kernel

Remediation

Recommended actions to resolve this vulnerability, in priority order.

  1. Upgrade

    Upgrade to a fixed release to a version that resolves this vulnerability.

    Patch fcc2431d2213dc4d04250c4f1ae87d9c3ae0d455

Event History

Oct 14, 2026
CVE Published
via MITRE·01:25 PM
Data Sourced
via MITRE·01:25 PM
Description

Frequently Asked Questions

1

Which systems are exposed to this condition?

Systems using the Linux kernel drm/xe driver are affected when a VM is torn down while stale page faults remain queued and the device can autosuspend before the page-fault worker acknowledges them.

2

What evidence would indicate that this issue has occurred?

The page-fault worker can trigger an assertion that the device is not runtime suspended. Reported evidence includes "Assertion `!xe_pm_runtime_suspended(xe)` failed!" and a warning from xe_device_assert_mem_access in the xe module.

3

What changes in the fix prevent the failure?

The fix holds a runtime PM reference for the entire page-fault queue worker batch. This keeps the device active while acknowledgements are delivered, including the final flush for write-only acknowledgements.

Contact

SecAlerts Pty Ltd.
132 Wickham Terrace
Fortitude Valley,
QLD 4006, Australia
info@secalerts.co
By using SecAlerts services, you agree to our services end-user license agreement. This website is safeguarded by reCAPTCHA and governed by the Google Privacy Policy and Terms of Service. All names, logos, and brands of products are owned by their respective owners, and any usage of these names, logos, and brands for identification purposes only does not imply endorsement. If you possess any content that requires removal, please get in touch with us.
© 2026 SecAlerts Pty Ltd.
ABN: 70 645 966 203, ACN: 645 966 203