[PATCH v3] iommu/arm-smmu-v3: Do not use GFP_KERNEL under as spinlock
Will Deacon
will at kernel.org
Thu Feb 22 05:21:09 PST 2024
On Wed, 21 Feb 2024 20:27:02 -0400, Jason Gunthorpe wrote:
> If the SMMU is configured to use a two level CD table then
> arm_smmu_write_ctx_desc() allocates a CD table leaf internally using
> GFP_KERNEL. Due to recent changes this is being done under a spinlock to
> iterate over the device list - thus it will trigger a sleeping while
> atomic warning:
>
> arm_smmu_sva_set_dev_pasid()
> mutex_lock(&sva_lock);
> __arm_smmu_sva_bind()
> arm_smmu_mmu_notifier_get()
> spin_lock_irqsave()
> arm_smmu_write_ctx_desc()
> arm_smmu_get_cd_ptr()
> arm_smmu_alloc_cd_leaf_table()
> dmam_alloc_coherent(GFP_KERNEL)
>
> [...]
Thanks guys, this looks really good now.
Applied to will (for-joerg/arm-smmu/fixes), thanks!
[1/1] iommu/arm-smmu-v3: Do not use GFP_KERNEL under as spinlock
https://git.kernel.org/will/c/b5bf7778b722
Cheers,
--
Will
https://fixes.arm64.dev
https://next.arm64.dev
https://will.arm64.dev
More information about the linux-arm-kernel
mailing list