CVE Catalog

CVE-2026-98391

Unknown
Published: Translated: NVD NIST

Summary

In the Linux kernel drm/xe driver, a race condition occurs during VM teardown when the runtime PM reference is dropped asynchronously while stale page faults are still queued. The page-fault worker may call guc_ct_send_locked() on an already-suspended device, tripping an assertion and kernel warning. The fix holds a runtime PM reference across the entire pagefault queue worker.

Risk Assessment

Can trigger kernel warnings and potentially lead to system instability or crash in environments with virtualization and the drm/xe driver. Requires specific conditions (VM teardown with stale page faults).

Recommendation

Update the Linux kernel to a version containing the fix. Avoid simultaneous VM teardown and GPU autosuspend if possible.

Other vulnerabilities in Linux kernel

See all
Original NVD description (English source)

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 guc_ct_send_locked() on an already-suspended device, tripping:   Assertion `!xe_pm_runtime_suspended(xe)` failed!   WARNING at xe_device.c:1267 xe_device_assert_mem_access+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 xe_pagefault_queue_work using guard(xe_pm_runtime)(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 write_only 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 xe_device struct for compatibility while cherry-picking]

Vulnerability data from NVD (NIST) · CISA KEV · EPSS