CVSROOT:        /cvs
Module name:    src
Changes by:     [email protected]    2026/03/31 02:54:15

Modified files:
        sys/dev/pci/drm: drm_linux.c 

Log message:
access ida under spltty()

ida is accessed from both process and interrupt contexts.

The interrupt context use occurs when a fence is hardware signaled:
dma_fence_signal -> amdgpu_pasid_free_cb -> ida_free -> idr_remove

linux currently uses an xarray with XA_FLAGS_LOCK_IRQ for ida, which
blocks interrupts when locked

This change was prompted by protection faults such as:
idr_tree_SPLAY+0x58
idr_alloc+0xb1
amdgpu_pasid_alloc+0x5d
amdgpu_driver_open_kms+0xac
drm_file_alloc+0x245
drmopen+0x12c

seen with 6.12 and 6.18 drm

volker@ could more consistently reproduce this on a system with a
Navi 31 (7900 XTX).

Lots of testing from volker@ and feedback from kettenis@

Reply via email to