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