IOMMU Fixes for Linux v5.5-rc2

Including:

	- Fix kmemleak warning in IOVA code

	- Fix compile warnings on ARM32/64 in dma-iommu code due to
	  dma_mask type mismatches

	- Make ISA reserved regions relaxable, so that VFIO can assign
	  devices which have such regions defined

	- Fix mapping errors resulting in IO page-faults in the VT-d
	  driver

	- Make sure direct mappings for a domain are created after the
	  default domain is updated

	- Map ISA reserved regions in the VT-d driver with correct
	  permissions

	- Remove unneeded check for PSI capability in the IOTLB flush
	  code of the VT-d driver

	- Lockdep fix iommu_dma_prepare_msi()
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>
1 file changed