iommu/dma: Relax locking in iommu_dma_prepare_msi()
authorRobin Murphy <robin.murphy@arm.com>
Mon, 9 Dec 2019 19:47:25 +0000 (19:47 +0000)
committerJoerg Roedel <jroedel@suse.de>
Wed, 18 Dec 2019 16:41:36 +0000 (17:41 +0100)
commitc18647900ec864d401ba09b3bbd5b34f331f8d26
tree19396b8c23761f2938e787b8b7c970705d978b7b
parentf81b846dcd9a1e6d120f73970a9a98b7fcaaffba
iommu/dma: Relax locking in iommu_dma_prepare_msi()

Since commit ece6e6f0218b ("iommu/dma-iommu: Split iommu_dma_map_msi_msg()
in two parts"), iommu_dma_prepare_msi() should no longer have to worry
about preempting itself, nor being called in atomic context at all. Thus
we can downgrade the IRQ-safe locking to a simple mutex to avoid angering
the new might_sleep() check in iommu_map().

Reported-by: Qian Cai <cai@lca.pw>
Tested-by: Jean-Philippe Brucker <jean-philippe@linaro.org>
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Signed-off-by: Joerg Roedel <jroedel@suse.de>
drivers/iommu/dma-iommu.c