Description
In the Linux kernel, the following vulnerability has been resolved: drm/xe/vm: nuke PTs only after unlinking contested VMAs In xe_vm_close_and_put(), external-BO VMAs are queued on the contested list for deferred destruction via xe_vma_destroy_unlocked(). However, xe_vm_pt_destroy() was previously invoked before processing contested VMAs, destroying vm->pt_root while those VMAs were still linked to their respective buffer objects (vm_bo->list.gpuva). If a concurrent thread evicts one of those shared buffer objects, xe_bo_trigger_rebind() holding only bo->resv walks the BO's VMAs and, in fault mode, calls xe_vm_invalidate_vma() -> xe_pt_zap_ptes(). Because vm->pt_root[tile->id] is already NULL, dereferencing pt->level causes a NULL ptr deref. Fix this by deferring xe_vm_free_scratch() and xe_vm_pt_destroy() until after all contested VMAs have been unlinked and destroyed. User is reporting hitting a NULL ptr deref in xe_pt_zap_ptes(), which could be explained by this race. (cherry picked from commit c2863648959489767f08892fd6e90577d2ea0b6a)
Affected products
Version statuses are supplied by the assigning organization. Consult the original record for detailed ranges and platform conditions.
Linux Linux
Default version status: unaffected
b06d47be7c83165d3b3e45e1d5f9520b79c7f5cc to < 70fddc065ac80845ffd33095b3635d59883cf7e6affectedb06d47be7c83165d3b3e45e1d5f9520b79c7f5cc to < ba678c2b02e0d36b53deb5a6d5e5ea044d36def7affectedb06d47be7c83165d3b3e45e1d5f9520b79c7f5cc to < bddaa5e4094c134452c29e20a26c4718827e4cb1affectedb06d47be7c83165d3b3e45e1d5f9520b79c7f5cc to < 24a22fb3c731474b68e986af6804db450fb88617affected
Linux Linux
Default version status: affected
6.8affected0 to < 6.8unaffected6.12.112 to ≤ 6.12.*unaffected6.18.55 to ≤ 6.18.*unaffected7.2.9 to ≤ 7.2.*unaffected7.3 to ≤ *unaffected