* [PATCH] iommu/dma: Remove bogus dma_supported() implementation
@ 2017-02-01 17:53 Robin Murphy
2017-02-06 12:14 ` Joerg Roedel
0 siblings, 1 reply; 2+ messages in thread
From: Robin Murphy @ 2017-02-01 17:53 UTC (permalink / raw)
To: linux-arm-kernel
Back when this was first written, dma_supported() was somewhat of a
murky mess, with subtly different interpretations being relied upon in
various places. The "does device X support DMA to address range Y?"
uses assuming Y to be physical addresses, which motivated the current
iommu_dma_supported() implementation and are alluded to in the comment
therein, have since been cleaned up, leaving only the far less ambiguous
"can device X drive address bits Y" usage internal to DMA API mask
setting. As such, there is no reason to keep a slightly misleading
callback which does nothing but duplicate the current default behaviour;
we already constrain IOVA allocations to the iommu_domain aperture where
necessary, so let's leave DMA mask business to architecture-specific
code where it belongs.
Signed-off-by: Robin Murphy <robin.murphy@arm.com>
---
Techincally an IOMMU patch, but could possibly go via arm64 I suppose.
arch/arm64/mm/dma-mapping.c | 1 -
drivers/iommu/dma-iommu.c | 10 ----------
include/linux/dma-iommu.h | 1 -
3 files changed, 12 deletions(-)
diff --git a/arch/arm64/mm/dma-mapping.c b/arch/arm64/mm/dma-mapping.c
index 88493b0ebd5e..351f7595cb3e 100644
--- a/arch/arm64/mm/dma-mapping.c
+++ b/arch/arm64/mm/dma-mapping.c
@@ -810,7 +810,6 @@ static struct dma_map_ops iommu_dma_ops = {
.sync_sg_for_device = __iommu_sync_sg_for_device,
.map_resource = iommu_dma_map_resource,
.unmap_resource = iommu_dma_unmap_resource,
- .dma_supported = iommu_dma_supported,
.mapping_error = iommu_dma_mapping_error,
};
diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index 1c9ac26e3b68..48d36ce59efb 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -734,16 +734,6 @@ void iommu_dma_unmap_resource(struct device *dev, dma_addr_t handle,
__iommu_dma_unmap(iommu_get_domain_for_dev(dev), handle);
}
-int iommu_dma_supported(struct device *dev, u64 mask)
-{
- /*
- * 'Special' IOMMUs which don't have the same addressing capability
- * as the CPU will have to wait until we have some way to query that
- * before they'll be able to use this framework.
- */
- return 1;
-}
-
int iommu_dma_mapping_error(struct device *dev, dma_addr_t dma_addr)
{
return dma_addr == DMA_ERROR_CODE;
diff --git a/include/linux/dma-iommu.h b/include/linux/dma-iommu.h
index 3a846f9ec0fd..5725c94b1f12 100644
--- a/include/linux/dma-iommu.h
+++ b/include/linux/dma-iommu.h
@@ -67,7 +67,6 @@ dma_addr_t iommu_dma_map_resource(struct device *dev, phys_addr_t phys,
size_t size, enum dma_data_direction dir, unsigned long attrs);
void iommu_dma_unmap_resource(struct device *dev, dma_addr_t handle,
size_t size, enum dma_data_direction dir, unsigned long attrs);
-int iommu_dma_supported(struct device *dev, u64 mask);
int iommu_dma_mapping_error(struct device *dev, dma_addr_t dma_addr);
/* The DMA API isn't _quite_ the whole story, though... */
--
2.11.0.dirty
^ permalink raw reply related [flat|nested] 2+ messages in thread* [PATCH] iommu/dma: Remove bogus dma_supported() implementation
2017-02-01 17:53 [PATCH] iommu/dma: Remove bogus dma_supported() implementation Robin Murphy
@ 2017-02-06 12:14 ` Joerg Roedel
0 siblings, 0 replies; 2+ messages in thread
From: Joerg Roedel @ 2017-02-06 12:14 UTC (permalink / raw)
To: linux-arm-kernel
On Wed, Feb 01, 2017 at 05:53:04PM +0000, Robin Murphy wrote:
> Back when this was first written, dma_supported() was somewhat of a
> murky mess, with subtly different interpretations being relied upon in
> various places. The "does device X support DMA to address range Y?"
> uses assuming Y to be physical addresses, which motivated the current
> iommu_dma_supported() implementation and are alluded to in the comment
> therein, have since been cleaned up, leaving only the far less ambiguous
> "can device X drive address bits Y" usage internal to DMA API mask
> setting. As such, there is no reason to keep a slightly misleading
> callback which does nothing but duplicate the current default behaviour;
> we already constrain IOVA allocations to the iommu_domain aperture where
> necessary, so let's leave DMA mask business to architecture-specific
> code where it belongs.
>
> Signed-off-by: Robin Murphy <robin.murphy@arm.com>
Applied, thanks
^ permalink raw reply [flat|nested] 2+ messages in thread
end of thread, other threads:[~2017-02-06 12:14 UTC | newest]
Thread overview: 2+ messages (download: mbox.gz follow: Atom feed
-- links below jump to the message on this page --
2017-02-01 17:53 [PATCH] iommu/dma: Remove bogus dma_supported() implementation Robin Murphy
2017-02-06 12:14 ` Joerg Roedel
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).