summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorLinux Build Service Account <lnxbuild@localhost>2016-08-03 21:12:51 -0700
committerGerrit - the friendly Code Review server <code-review@localhost>2016-08-03 21:12:51 -0700
commit4cffd9684d63cfa85c262617213d45f7d8b02c41 (patch)
tree53641bb46469f8012bbd4badcd392a6b8902ced7
parent62fc2827aea9ec94ef79c99af88ac97613dee93d (diff)
parent805f58d1f5abaa4a58b405b7cf228a83fcb04c02 (diff)
Merge "Revert "arm64: dma-mapping: Attach IOMMUs as groups""
-rw-r--r--arch/arm64/mm/dma-mapping.c18
1 files changed, 2 insertions, 16 deletions
diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c
index 7cf7e4f94f36..416b2afc6555 100644
--- a/arch/arm64/mm/dma-mapping.c
+++ b/arch/arm64/mm/dma-mapping.c
@@ -2115,19 +2115,12 @@ int arm_iommu_attach_device(struct device *dev,
{
int err;
int s1_bypass = 0, is_fast = 0;
- struct iommu_group *group;
iommu_domain_get_attr(mapping->domain, DOMAIN_ATTR_FAST, &is_fast);
if (is_fast)
return fast_smmu_attach_device(dev, mapping);
- group = iommu_group_get(dev);
- if (!group) {
- dev_err(dev, "Couldn't get group\n");
- return -ENODEV;
- }
-
- err = iommu_attach_group(mapping->domain, group);
+ err = iommu_attach_device(mapping->domain, dev);
if (err)
return err;
@@ -2155,7 +2148,6 @@ void arm_iommu_detach_device(struct device *dev)
{
struct dma_iommu_mapping *mapping;
int is_fast;
- struct iommu_group *group;
mapping = to_dma_iommu_mapping(dev);
if (!mapping) {
@@ -2169,13 +2161,7 @@ void arm_iommu_detach_device(struct device *dev)
return;
}
- group = iommu_group_get(dev);
- if (!group) {
- dev_err(dev, "Couldn't get group\n");
- return;
- }
-
- iommu_detach_group(mapping->domain, group);
+ iommu_detach_device(mapping->domain, dev);
kref_put(&mapping->kref, release_iommu_mapping);
dev->archdata.mapping = NULL;
set_dma_ops(dev, NULL);