iommu/amd: Reserve exclusion range in iova-domain
authorJoerg Roedel <jroedel@suse.de>
Thu, 28 Mar 2019 10:44:59 +0000 (11:44 +0100)
committerJoerg Roedel <jroedel@suse.de>
Fri, 29 Mar 2019 16:12:57 +0000 (17:12 +0100)
commit8aafaaf2212192012f5bae305bb31cdf7681d777
treee127f639ee1505d08551be15953eade4756caf8a
parent8bc32a285660e13fdcf92ddaf5b8653abe112040
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>
drivers/iommu/amd_iommu.c
drivers/iommu/amd_iommu_init.c
drivers/iommu/amd_iommu_types.h