IOMMU Fixes for Linux v5.1-rc3

Including:

	- Fix a bug in the AMD IOMMU driver not handling exclusion ranges
	  correctly. In fact the driver did not reserve these ranges for
	  IOVA allocations, so that dma-handles could be allocated in an
	  exclusion range, leading to data corruption. Exclusion ranges
	  have not been used by any firmware up to now, so this issue
	  remained undiscovered for quite some time.

	- Fix wrong warning messages that the IOMMU core code prints
	  when it tries to allocate the default domain for an iommu
	  group and the driver does not support any of the default
	  domain types (like Intel VT-d).
iommu/amd: Reserve exclusion range in iova-domain

If a device has an exclusion range specified in the IVRS
table, this region needs to be reserved in the iova-domain
of that device. This hasn't happened until now and can cause
data corruption on data transfered with these devices.

Treat exclusion ranges as reserved regions in the iommu-core
to fix the problem.

Fixes: be2a022c0dd0 ('x86, AMD IOMMU: add functions to parse IOMMU memory mapping requirements for devices')
Signed-off-by: Joerg Roedel <jroedel@suse.de>
Reviewed-by: Gary R Hook <gary.hook@amd.com>
3 files changed