On 04.08.2021 19:15, Robin Murphy wrote: > The core code bakes its own cookies now. > > CC: Marek Szyprowski <m.szyprow...@samsung.com> > Signed-off-by: Robin Murphy <robin.mur...@arm.com>
Acked-by: Marek Szyprowski <m.szyprow...@samsung.com> Tested-by: Marek Szyprowski <m.szyprow...@samsung.com> > --- > > v3: Also remove unneeded include > --- > drivers/iommu/exynos-iommu.c | 19 ++++--------------- > 1 file changed, 4 insertions(+), 15 deletions(-) > > diff --git a/drivers/iommu/exynos-iommu.c b/drivers/iommu/exynos-iommu.c > index d0fbf1d10e18..939ffa768986 100644 > --- a/drivers/iommu/exynos-iommu.c > +++ b/drivers/iommu/exynos-iommu.c > @@ -21,7 +21,6 @@ > #include <linux/platform_device.h> > #include <linux/pm_runtime.h> > #include <linux/slab.h> > -#include <linux/dma-iommu.h> > > typedef u32 sysmmu_iova_t; > typedef u32 sysmmu_pte_t; > @@ -735,20 +734,16 @@ static struct iommu_domain > *exynos_iommu_domain_alloc(unsigned type) > /* Check if correct PTE offsets are initialized */ > BUG_ON(PG_ENT_SHIFT < 0 || !dma_dev); > > + if (type != IOMMU_DOMAIN_DMA && type != IOMMU_DOMAIN_UNMANAGED) > + return NULL; > + > domain = kzalloc(sizeof(*domain), GFP_KERNEL); > if (!domain) > return NULL; > > - if (type == IOMMU_DOMAIN_DMA) { > - if (iommu_get_dma_cookie(&domain->domain) != 0) > - goto err_pgtable; > - } else if (type != IOMMU_DOMAIN_UNMANAGED) { > - goto err_pgtable; > - } > - > domain->pgtable = (sysmmu_pte_t *)__get_free_pages(GFP_KERNEL, 2); > if (!domain->pgtable) > - goto err_dma_cookie; > + goto err_pgtable; > > domain->lv2entcnt = (short *)__get_free_pages(GFP_KERNEL | __GFP_ZERO, > 1); > if (!domain->lv2entcnt) > @@ -779,9 +774,6 @@ static struct iommu_domain > *exynos_iommu_domain_alloc(unsigned type) > free_pages((unsigned long)domain->lv2entcnt, 1); > err_counter: > free_pages((unsigned long)domain->pgtable, 2); > -err_dma_cookie: > - if (type == IOMMU_DOMAIN_DMA) > - iommu_put_dma_cookie(&domain->domain); > err_pgtable: > kfree(domain); > return NULL; > @@ -809,9 +801,6 @@ static void exynos_iommu_domain_free(struct iommu_domain > *iommu_domain) > > spin_unlock_irqrestore(&domain->lock, flags); > > - if (iommu_domain->type == IOMMU_DOMAIN_DMA) > - iommu_put_dma_cookie(iommu_domain); > - > dma_unmap_single(dma_dev, virt_to_phys(domain->pgtable), LV1TABLE_SIZE, > DMA_TO_DEVICE); > Best regards -- Marek Szyprowski, PhD Samsung R&D Institute Poland _______________________________________________ iommu mailing list iommu@lists.linux-foundation.org https://lists.linuxfoundation.org/mailman/listinfo/iommu