On Mon, Mar 30, 2026 at 10:33 PM Lazar, Lijo <[email protected]> wrote: > > Sorry, I didn't mean to confuse. In v3, was only talking about > alloc_cyclic call. > > As per the call trace posted, amdgpu_pasid_free() has a chance to be > called from irq context and that may still use irq save/restore > approach. Eric/Christian, could you confirm?
Hi Lijo, You're right, xa_erase() uses plain xa_lock() without irqsave — I verified in lib/xarray.c. I've sent v5 which uses xa_lock_irqsave/__xa_erase for amdgpu_pasid_free() since it can be called from hardirq via amdgpu_pasid_free_cb. xa_alloc_cyclic() in amdgpu_pasid_alloc() is kept as-is since it handles irq-safe locking internally. https://lore.kernel.org/all/[email protected]/ Thanks for catching this. -- Best Regards, Mike Gavrilov.
