diff options
-rw-r--r-- | drivers/iommu/intel-iommu.c | 12 |
1 files changed, 3 insertions, 9 deletions
diff --git a/drivers/iommu/intel-iommu.c b/drivers/iommu/intel-iommu.c index 66b4444398ae..0ad67d65bbce 100644 --- a/drivers/iommu/intel-iommu.c +++ b/drivers/iommu/intel-iommu.c | |||
@@ -3617,7 +3617,7 @@ static dma_addr_t __intel_map_page(struct device *dev, struct page *page, | |||
3617 | 3617 | ||
3618 | domain = get_valid_domain_for_dev(dev); | 3618 | domain = get_valid_domain_for_dev(dev); |
3619 | if (!domain) | 3619 | if (!domain) |
3620 | return 0; | 3620 | return DMA_MAPPING_ERROR; |
3621 | 3621 | ||
3622 | iommu = domain_get_iommu(domain); | 3622 | iommu = domain_get_iommu(domain); |
3623 | size = aligned_nrpages(paddr, size); | 3623 | size = aligned_nrpages(paddr, size); |
@@ -3655,7 +3655,7 @@ error: | |||
3655 | free_iova_fast(&domain->iovad, iova_pfn, dma_to_mm_pfn(size)); | 3655 | free_iova_fast(&domain->iovad, iova_pfn, dma_to_mm_pfn(size)); |
3656 | pr_err("Device %s request: %zx@%llx dir %d --- failed\n", | 3656 | pr_err("Device %s request: %zx@%llx dir %d --- failed\n", |
3657 | dev_name(dev), size, (unsigned long long)paddr, dir); | 3657 | dev_name(dev), size, (unsigned long long)paddr, dir); |
3658 | return 0; | 3658 | return DMA_MAPPING_ERROR; |
3659 | } | 3659 | } |
3660 | 3660 | ||
3661 | static dma_addr_t intel_map_page(struct device *dev, struct page *page, | 3661 | static dma_addr_t intel_map_page(struct device *dev, struct page *page, |
@@ -3756,7 +3756,7 @@ static void *intel_alloc_coherent(struct device *dev, size_t size, | |||
3756 | 3756 | ||
3757 | *dma_handle = __intel_map_page(dev, page, 0, size, DMA_BIDIRECTIONAL, | 3757 | *dma_handle = __intel_map_page(dev, page, 0, size, DMA_BIDIRECTIONAL, |
3758 | dev->coherent_dma_mask); | 3758 | dev->coherent_dma_mask); |
3759 | if (*dma_handle) | 3759 | if (*dma_handle != DMA_MAPPING_ERROR) |
3760 | return page_address(page); | 3760 | return page_address(page); |
3761 | if (!dma_release_from_contiguous(dev, page, size >> PAGE_SHIFT)) | 3761 | if (!dma_release_from_contiguous(dev, page, size >> PAGE_SHIFT)) |
3762 | __free_pages(page, order); | 3762 | __free_pages(page, order); |
@@ -3865,11 +3865,6 @@ static int intel_map_sg(struct device *dev, struct scatterlist *sglist, int nele | |||
3865 | return nelems; | 3865 | return nelems; |
3866 | } | 3866 | } |
3867 | 3867 | ||
3868 | static int intel_mapping_error(struct device *dev, dma_addr_t dma_addr) | ||
3869 | { | ||
3870 | return !dma_addr; | ||
3871 | } | ||
3872 | |||
3873 | static const struct dma_map_ops intel_dma_ops = { | 3868 | static const struct dma_map_ops intel_dma_ops = { |
3874 | .alloc = intel_alloc_coherent, | 3869 | .alloc = intel_alloc_coherent, |
3875 | .free = intel_free_coherent, | 3870 | .free = intel_free_coherent, |
@@ -3877,7 +3872,6 @@ static const struct dma_map_ops intel_dma_ops = { | |||
3877 | .unmap_sg = intel_unmap_sg, | 3872 | .unmap_sg = intel_unmap_sg, |
3878 | .map_page = intel_map_page, | 3873 | .map_page = intel_map_page, |
3879 | .unmap_page = intel_unmap_page, | 3874 | .unmap_page = intel_unmap_page, |
3880 | .mapping_error = intel_mapping_error, | ||
3881 | .dma_supported = dma_direct_supported, | 3875 | .dma_supported = dma_direct_supported, |
3882 | }; | 3876 | }; |
3883 | 3877 | ||