Loading arch/arm64/mm/dma-mapping.c +6 −2 Original line number Diff line number Diff line Loading @@ -2147,7 +2147,7 @@ EXPORT_SYMBOL(arm_iommu_attach_device); void arm_iommu_detach_device(struct device *dev) { struct dma_iommu_mapping *mapping; int is_fast; int is_fast, s1_bypass = 0; mapping = to_dma_iommu_mapping(dev); if (!mapping) { Loading @@ -2161,9 +2161,13 @@ void arm_iommu_detach_device(struct device *dev) return; } iommu_domain_get_attr(mapping->domain, DOMAIN_ATTR_S1_BYPASS, &s1_bypass); iommu_detach_device(mapping->domain, dev); kref_put(&mapping->kref, release_iommu_mapping); dev->archdata.mapping = NULL; if (!s1_bypass) set_dma_ops(dev, NULL); pr_debug("Detached IOMMU controller from %s device.\n", dev_name(dev)); Loading Loading
arch/arm64/mm/dma-mapping.c +6 −2 Original line number Diff line number Diff line Loading @@ -2147,7 +2147,7 @@ EXPORT_SYMBOL(arm_iommu_attach_device); void arm_iommu_detach_device(struct device *dev) { struct dma_iommu_mapping *mapping; int is_fast; int is_fast, s1_bypass = 0; mapping = to_dma_iommu_mapping(dev); if (!mapping) { Loading @@ -2161,9 +2161,13 @@ void arm_iommu_detach_device(struct device *dev) return; } iommu_domain_get_attr(mapping->domain, DOMAIN_ATTR_S1_BYPASS, &s1_bypass); iommu_detach_device(mapping->domain, dev); kref_put(&mapping->kref, release_iommu_mapping); dev->archdata.mapping = NULL; if (!s1_bypass) set_dma_ops(dev, NULL); pr_debug("Detached IOMMU controller from %s device.\n", dev_name(dev)); Loading