+17
−8
Loading
With iommu.strict=1, the existing completion wait path can cause soft lockups under stressed environment, as wait_on_sem() busy-waits under the spinlock with interrupts disabled. Move the completion wait in iommu_completion_wait() out of the spinlock. wait_on_sem() only polls the hardware-updated cmd_sem and does not require iommu->lock, so holding the lock during the busy wait unnecessarily increases contention and extends the time with interrupts disabled. Signed-off-by:Ankit Soni <Ankit.Soni@amd.com> Reviewed-by:
Vasant Hegde <vasant.hegde@amd.com> Signed-off-by:
Joerg Roedel <joerg.roedel@amd.com>