{"id":39062,"date":"2026-10-16T00:34:57","date_gmt":"2026-10-15T16:34:57","guid":{"rendered":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98391"},"modified":"2026-10-16T00:34:57","modified_gmt":"2026-10-15T16:34:57","slug":"cve-2026-98391","status":"publish","type":"vuln","link":"https:\/\/www.54iter.cn\/?vuln=cve-2026-98391","title":{"rendered":"CVE-2026-98391 &#8211; In the Linux kernel, the following vulnerability has been resolved:\n\ndrm\/xe: Guard page-fa"},"content":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>drm\/xe: Guard page-fault worker with runtime PM check<\/p>\n<p>During VM teardown, the VM&#8217;s runtime PM reference is dropped<br \/>\nasynchronously, allowing the device to autosuspend while stale page<br \/>\nfaults belonging to the now-dead VM are still queued. When the<br \/>\npage-fault worker later tries to ack one of these, it calls into<br \/>\nguc_ct_send_locked() on an already-suspended device, tripping:<\/p>\n<p>\u00a0 Assertion `!xe_pm_runtime_suspended(xe)` failed!<br \/>\n\u00a0 WARNING at xe_device.c:1267 xe_device_assert_mem_access+0x11c\/0x140 [xe]<\/p>\n<p>A live VM\/exec queue always holds a PM reference while it has<br \/>\noutstanding work, so if the device is suspended at ack time, the<br \/>\nowning context is already gone and the fault is stale.<\/p>\n<p>Take a runtime PM reference across the entire pagefault<br \/>\nqueue worker to safely deliver acks for torn-down VMs.<\/p>\n<p>v3:<br \/>\n &#8211; Move PM ref to the generic xe_pagefault_queue_work using<br \/>\n   guard(xe_pm_runtime)(xe) instead of tracking it in the GuC<br \/>\n   backend(Matt Brost).<\/p>\n<p>v2:<br \/>\n &#8211; Hold PM ref across the entire batch (begin\/end) instead of per-ack.<br \/>\n   This prevents the device from autosuspending mid-batch, which would<br \/>\n   leave write_only acks written but the end flush skipped, and skip<br \/>\n   counter++, desyncing the cadence check.(Himal)<br \/>\n &#8211; Add a comment explaining stale faults.(Himal)<\/p>\n<p>(cherry picked from commit fcc2431d2213dc4d04250c4f1ae87d9c3ae0d455)<br \/>\n[Rodrigo: Added xe_device struct for compatibility while cherry-picking]<\/p>\n","protected":false},"excerpt":{"rendered":"<p>In the Linux kernel, the following vulnerability has been resolved:<\/p>\n<p>drm\/xe: Guard page-fault worker with runtime PM check<\/p>\n<p>During VM teardown, the VM&#8217;s runtime PM reference is dropped<br \/>\nasynchronously,<\/p>\n","protected":false},"template":"","meta":[],"categories":[],"tags":[],"class_list":["post-39062","vuln","type-vuln","status-publish","hentry"],"_links":{"self":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln\/39062","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/vuln"}],"about":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=\/wp\/v2\/types\/vuln"}],"wp:attachment":[{"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fmedia&parent=39062"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Fcategories&post=39062"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.54iter.cn\/index.php?rest_route=%2Fwp%2Fv2%2Ftags&post=39062"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}