Loading drivers/iommu/arm-smmu.c +12 −1 Original line number Diff line number Diff line Loading @@ -2959,11 +2959,22 @@ static int arm_smmu_domain_set_attr(struct iommu_domain *domain, 1 << DOMAIN_ATTR_UPSTREAM_IOVA_ALLOCATOR; ret = 0; break; /* * fast_smmu_unmap_page() and fast_smmu_alloc_iova() both * expect that the bus/clock/regulator are already on. Thus also * force DOMAIN_ATTR_ATOMIC to bet set. */ case DOMAIN_ATTR_FAST: if (*((int *)data)) { int fast = *((int *)data); if (fast) { smmu_domain->attributes |= 1 << DOMAIN_ATTR_FAST; smmu_domain->attributes |= 1 << DOMAIN_ATTR_ATOMIC; } ret = 0; break; } case DOMAIN_ATTR_USE_UPSTREAM_HINT: /* can't be changed while attached */ if (smmu_domain->smmu != NULL) { Loading drivers/iommu/dma-mapping-fast.c +1 −5 Original line number Diff line number Diff line Loading @@ -867,7 +867,7 @@ static void fast_smmu_reserve_pci_windows(struct device *dev, int fast_smmu_init_mapping(struct device *dev, struct dma_iommu_mapping *mapping) { int err, atomic_domain = 1; int err; struct iommu_domain *domain = mapping->domain; struct iommu_group *group; struct iommu_pgtbl_info info; Loading @@ -878,10 +878,6 @@ int fast_smmu_init_mapping(struct device *dev, return -EINVAL; } if (iommu_domain_set_attr(domain, DOMAIN_ATTR_ATOMIC, &atomic_domain)) return -EINVAL; mapping->fast = __fast_smmu_create_mapping_sized(mapping->base, size); if (IS_ERR(mapping->fast)) return -ENOMEM; Loading Loading
drivers/iommu/arm-smmu.c +12 −1 Original line number Diff line number Diff line Loading @@ -2959,11 +2959,22 @@ static int arm_smmu_domain_set_attr(struct iommu_domain *domain, 1 << DOMAIN_ATTR_UPSTREAM_IOVA_ALLOCATOR; ret = 0; break; /* * fast_smmu_unmap_page() and fast_smmu_alloc_iova() both * expect that the bus/clock/regulator are already on. Thus also * force DOMAIN_ATTR_ATOMIC to bet set. */ case DOMAIN_ATTR_FAST: if (*((int *)data)) { int fast = *((int *)data); if (fast) { smmu_domain->attributes |= 1 << DOMAIN_ATTR_FAST; smmu_domain->attributes |= 1 << DOMAIN_ATTR_ATOMIC; } ret = 0; break; } case DOMAIN_ATTR_USE_UPSTREAM_HINT: /* can't be changed while attached */ if (smmu_domain->smmu != NULL) { Loading
drivers/iommu/dma-mapping-fast.c +1 −5 Original line number Diff line number Diff line Loading @@ -867,7 +867,7 @@ static void fast_smmu_reserve_pci_windows(struct device *dev, int fast_smmu_init_mapping(struct device *dev, struct dma_iommu_mapping *mapping) { int err, atomic_domain = 1; int err; struct iommu_domain *domain = mapping->domain; struct iommu_group *group; struct iommu_pgtbl_info info; Loading @@ -878,10 +878,6 @@ int fast_smmu_init_mapping(struct device *dev, return -EINVAL; } if (iommu_domain_set_attr(domain, DOMAIN_ATTR_ATOMIC, &atomic_domain)) return -EINVAL; mapping->fast = __fast_smmu_create_mapping_sized(mapping->base, size); if (IS_ERR(mapping->fast)) return -ENOMEM; Loading