CVE-2026-98510: drm/xe/vm: nuke PTs only after unlinking contested VMAs
In the Linux kernel, the following vulnerability has been resolved:
drm/xe/vm: nuke PTs only after unlinking contested VMAs
In xevmcloseandput(), external-BO VMAs are queued on the contested list for deferred destruction via xevmadestroyunlocked(). However, xevmptdestroy() was previously invoked before processing contested VMAs, destroying vm->ptroot while those VMAs were still linked to their respective buffer objects (vmbo->list.gpuva).
If a concurrent thread evicts one of those shared buffer objects, xebotriggerrebind() holding only bo->resv walks the BO's VMAs and, in fault mode, calls xevminvalidatevma() -> xeptzapptes(). Because vm->ptroot[tile->id] is already NULL, dereferencing pt->level causes a NULL ptr deref.
Fix this by deferring xevmfreescratch() and xevmptdestroy() until after all contested VMAs have been unlinked and destroyed.
User is reporting hitting a NULL ptr deref in xeptzapptes(), which could be explained by this race.
(cherry picked from commit c2863648959489767f08892fd6e90577d2ea0b6a)
Affected Software
Remediation
Recommended actions to resolve this vulnerability, in priority order.
- Upgrade
Upgrade to a fixed release to a version that resolves this vulnerability.
Patch c2863648959489767f08892fd6e90577d2ea0b6a