diff options
author | Will Deacon <will.deacon@arm.com> | 2016-02-18 07:05:57 -0500 |
---|---|---|
committer | Will Deacon <will.deacon@arm.com> | 2016-02-18 10:02:44 -0500 |
commit | cbf8277ef4562075eb4e3932ccd60cc11ee9454c (patch) | |
tree | 87ad12c98e3264e58b7ad62c972ed8a5e8e1c068 /drivers/iommu/arm-smmu.c | |
parent | bc7f2ce0a7b54ba7703f81995fe434f0926424d2 (diff) |
iommu/arm-smmu: Treat IOMMU_DOMAIN_DMA as bypass for now
Until all upstream devices have their DMA ops swizzled to point at the
SMMU, we need to treat the IOMMU_DOMAIN_DMA domain as bypass to avoid
putting devices into an empty address space when detaching from VFIO.
Signed-off-by: Will Deacon <will.deacon@arm.com>
Diffstat (limited to 'drivers/iommu/arm-smmu.c')
-rw-r--r-- | drivers/iommu/arm-smmu.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/drivers/iommu/arm-smmu.c b/drivers/iommu/arm-smmu.c index f21332a15040..2409e3bd3df2 100644 --- a/drivers/iommu/arm-smmu.c +++ b/drivers/iommu/arm-smmu.c | |||
@@ -1094,6 +1094,13 @@ static int arm_smmu_domain_add_master(struct arm_smmu_domain *smmu_domain, | |||
1094 | if (ret) | 1094 | if (ret) |
1095 | return ret == -EEXIST ? 0 : ret; | 1095 | return ret == -EEXIST ? 0 : ret; |
1096 | 1096 | ||
1097 | /* | ||
1098 | * FIXME: This won't be needed once we have IOMMU-backed DMA ops | ||
1099 | * for all devices behind the SMMU. | ||
1100 | */ | ||
1101 | if (smmu_domain->domain.type == IOMMU_DOMAIN_DMA) | ||
1102 | return 0; | ||
1103 | |||
1097 | for (i = 0; i < cfg->num_streamids; ++i) { | 1104 | for (i = 0; i < cfg->num_streamids; ++i) { |
1098 | u32 idx, s2cr; | 1105 | u32 idx, s2cr; |
1099 | 1106 | ||