2019-04-23 20:06:18

by Tom Murphy

[permalink] [raw]
Subject: [PATCH] Remove old no iommu direct mapping code

These checks were intended to handle devices not mapped by the IOMMU.
Since the AMD IOMMU driver uses per-device dma_ops these functions can
no longer be called by direct mapped devices. So these checks aren't
needed anymore.

Signed-off-by: Tom Murphy <[email protected]>
---
drivers/iommu/amd_iommu.c | 10 ++--------
1 file changed, 2 insertions(+), 8 deletions(-)

diff --git a/drivers/iommu/amd_iommu.c b/drivers/iommu/amd_iommu.c
index b319e51c379b..67cdc9e5304b 100644
--- a/drivers/iommu/amd_iommu.c
+++ b/drivers/iommu/amd_iommu.c
@@ -2503,9 +2503,7 @@ static dma_addr_t map_page(struct device *dev, struct page *page,
u64 dma_mask;

domain = get_domain(dev);
- if (PTR_ERR(domain) == -EINVAL)
- return (dma_addr_t)paddr;
- else if (IS_ERR(domain))
+ if (IS_ERR(domain))
return DMA_MAPPING_ERROR;

dma_mask = *dev->dma_mask;
@@ -2676,11 +2674,7 @@ static void *alloc_coherent(struct device *dev, size_t size,
struct page *page;

domain = get_domain(dev);
- if (PTR_ERR(domain) == -EINVAL) {
- page = alloc_pages(flag, get_order(size));
- *dma_addr = page_to_phys(page);
- return page_address(page);
- } else if (IS_ERR(domain))
+ if (IS_ERR(domain))
return NULL;

dma_dom = to_dma_ops_domain(domain);
--
2.17.1


2019-04-26 15:04:14

by Joerg Roedel

[permalink] [raw]
Subject: Re: [PATCH] Remove old no iommu direct mapping code

On Tue, Apr 23, 2019 at 09:03:34PM +0100, Tom Murphy wrote:
> These checks were intended to handle devices not mapped by the IOMMU.
> Since the AMD IOMMU driver uses per-device dma_ops these functions can
> no longer be called by direct mapped devices. So these checks aren't
> needed anymore.
>
> Signed-off-by: Tom Murphy <[email protected]>
> ---
> drivers/iommu/amd_iommu.c | 10 ++--------
> 1 file changed, 2 insertions(+), 8 deletions(-)

This has already been done by Christoph, see

https://git.kernel.org/pub/scm/linux/kernel/git/joro/iommu.git/commit/?id=7a5dbf3ab2f04905cf8468c66fcdbfb643068bcb

Regards,

Joerg