All of lore.kernel.org
 help / color / mirror / Atom feed
From: Robin Murphy <robin.murphy@arm.com>
To: joro@8bytes.org, will@kernel.org
Cc: iommu@lists.linux-foundation.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, suravee.suthikulpanit@amd.com,
	baolu.lu@linux.intel.com, john.garry@huawei.com,
	dianders@chromium.org, rajatja@google.com,
	chenxiang66@hisilicon.com,
	Marek Szyprowski <m.szyprowski@samsung.com>
Subject: [PATCH v3 05/25] iommu/exynos: Drop IOVA cookie management
Date: Wed,  4 Aug 2021 18:15:33 +0100	[thread overview]
Message-ID: <fc13c3abc2939825f20ba4733ac8abb90b58528f.1628094601.git.robin.murphy@arm.com> (raw)
In-Reply-To: <cover.1628094600.git.robin.murphy@arm.com>

The core code bakes its own cookies now.

CC: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.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);
 
-- 
2.25.1


WARNING: multiple messages have this Message-ID (diff)
From: Robin Murphy <robin.murphy@arm.com>
To: joro@8bytes.org, will@kernel.org
Cc: linux-kernel@vger.kernel.org, dianders@chromium.org,
	iommu@lists.linux-foundation.org, rajatja@google.com,
	linux-arm-kernel@lists.infradead.org
Subject: [PATCH v3 05/25] iommu/exynos: Drop IOVA cookie management
Date: Wed,  4 Aug 2021 18:15:33 +0100	[thread overview]
Message-ID: <fc13c3abc2939825f20ba4733ac8abb90b58528f.1628094601.git.robin.murphy@arm.com> (raw)
In-Reply-To: <cover.1628094600.git.robin.murphy@arm.com>

The core code bakes its own cookies now.

CC: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.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);
 
-- 
2.25.1

_______________________________________________
iommu mailing list
iommu@lists.linux-foundation.org
https://lists.linuxfoundation.org/mailman/listinfo/iommu

WARNING: multiple messages have this Message-ID (diff)
From: Robin Murphy <robin.murphy@arm.com>
To: joro@8bytes.org, will@kernel.org
Cc: iommu@lists.linux-foundation.org,
	linux-arm-kernel@lists.infradead.org,
	linux-kernel@vger.kernel.org, suravee.suthikulpanit@amd.com,
	baolu.lu@linux.intel.com, john.garry@huawei.com,
	dianders@chromium.org, rajatja@google.com,
	chenxiang66@hisilicon.com,
	Marek Szyprowski <m.szyprowski@samsung.com>
Subject: [PATCH v3 05/25] iommu/exynos: Drop IOVA cookie management
Date: Wed,  4 Aug 2021 18:15:33 +0100	[thread overview]
Message-ID: <fc13c3abc2939825f20ba4733ac8abb90b58528f.1628094601.git.robin.murphy@arm.com> (raw)
In-Reply-To: <cover.1628094600.git.robin.murphy@arm.com>

The core code bakes its own cookies now.

CC: Marek Szyprowski <m.szyprowski@samsung.com>
Signed-off-by: Robin Murphy <robin.murphy@arm.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);
 
-- 
2.25.1


_______________________________________________
linux-arm-kernel mailing list
linux-arm-kernel@lists.infradead.org
http://lists.infradead.org/mailman/listinfo/linux-arm-kernel

  parent reply	other threads:[~2021-08-04 17:16 UTC|newest]

Thread overview: 130+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-08-04 17:15 [PATCH v3 00/25] iommu: Refactor DMA domain strictness Robin Murphy
2021-08-04 17:15 ` Robin Murphy
2021-08-04 17:15 ` Robin Murphy
2021-08-04 17:15 ` [PATCH v3 01/25] iommu: Pull IOVA cookie management into the core Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 18:52   ` Heiko Stübner
2021-08-04 18:52     ` Heiko Stübner
2021-08-04 18:52     ` Heiko Stübner
2021-08-05  7:18   ` Marek Szyprowski
2021-08-05  7:18     ` Marek Szyprowski
2021-08-05  7:18     ` Marek Szyprowski
2021-08-05  9:15   ` Yoshihiro Shimoda
2021-08-05  9:15     ` Yoshihiro Shimoda
2021-08-05  9:15     ` Yoshihiro Shimoda
2021-08-04 17:15 ` [PATCH v3 02/25] iommu/amd: Drop IOVA cookie management Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-05  7:37   ` kernel test robot
2021-08-05  7:37     ` kernel test robot
2021-08-05  7:37     ` kernel test robot
2021-08-05  7:37     ` kernel test robot
2021-08-05  9:37   ` Robin Murphy
2021-08-05  9:37     ` Robin Murphy
2021-08-05  9:37     ` Robin Murphy
2021-08-04 17:15 ` [PATCH v3 03/25] iommu/arm-smmu: " Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15 ` [PATCH v3 04/25] iommu/vt-d: " Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15 ` Robin Murphy [this message]
2021-08-04 17:15   ` [PATCH v3 05/25] iommu/exynos: " Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-05  7:19   ` Marek Szyprowski
2021-08-05  7:19     ` Marek Szyprowski
2021-08-05  7:19     ` Marek Szyprowski
2021-08-04 17:15 ` [PATCH v3 06/25] iommu/ipmmu-vmsa: " Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-05  9:15   ` Yoshihiro Shimoda
2021-08-05  9:15     ` Yoshihiro Shimoda
2021-08-05  9:15     ` Yoshihiro Shimoda
2021-08-04 17:15 ` [PATCH v3 07/25] iommu/mtk: " Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15 ` [PATCH v3 08/25] iommu/rockchip: " Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 18:53   ` Heiko Stübner
2021-08-04 18:53     ` Heiko Stübner
2021-08-04 18:53     ` Heiko Stübner
2021-08-04 17:15 ` [PATCH v3 09/25] iommu/sprd: " Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-06  2:15   ` Chunyan Zhang
2021-08-06  2:15     ` Chunyan Zhang
2021-08-06  2:15     ` Chunyan Zhang
2021-08-04 17:15 ` [PATCH v3 10/25] iommu/sun50i: " Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15 ` [PATCH v3 11/25] iommu/virtio: " Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15 ` [PATCH v3 12/25] iommu/dma: Unexport " Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15 ` [PATCH v3 13/25] iommu/dma: Remove redundant "!dev" checks Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15 ` [PATCH v3 14/25] iommu: Indicate queued flushes via gather data Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15 ` [PATCH v3 15/25] iommu/io-pgtable: Remove non-strict quirk Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15 ` [PATCH v3 16/25] iommu: Introduce explicit type for non-strict DMA domains Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15 ` [PATCH v3 17/25] iommu/amd: Prepare for multiple DMA domain types Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15 ` [PATCH v3 18/25] iommu/arm-smmu: " Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15 ` [PATCH v3 19/25] iommu/vt-d: " Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15 ` [PATCH v3 20/25] iommu: Express DMA strictness via the domain type Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15 ` [PATCH v3 21/25] iommu: Expose DMA domain strictness via sysfs Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15 ` [PATCH v3 22/25] iommu: Only log strictness for DMA domains Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15 ` [PATCH v3 23/25] iommu: Merge strictness and domain type configs Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-06  9:15   ` John Garry
2021-08-06  9:15     ` John Garry
2021-08-06  9:15     ` John Garry
2021-08-04 17:15 ` [PATCH v3 24/25] iommu/dma: Factor out flush queue init Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-09 12:52   ` Will Deacon
2021-08-09 12:52     ` Will Deacon
2021-08-09 12:52     ` Will Deacon
2021-08-09 14:47     ` Robin Murphy
2021-08-09 14:47       ` Robin Murphy
2021-08-09 14:47       ` Robin Murphy
2021-08-09 19:05   ` Rajat Jain
2021-08-09 19:05     ` Rajat Jain
2021-08-09 19:05     ` Rajat Jain via iommu
2021-08-09 19:59     ` Robin Murphy
2021-08-09 19:59       ` Robin Murphy
2021-08-09 19:59       ` Robin Murphy
2021-08-09 20:15       ` Rajat Jain
2021-08-09 20:15         ` Rajat Jain
2021-08-09 20:15         ` Rajat Jain via iommu
2021-08-04 17:15 ` [PATCH v3 25/25] iommu: Allow enabling non-strict mode dynamically Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-04 17:15   ` Robin Murphy
2021-08-09 12:49   ` Will Deacon
2021-08-09 12:49     ` Will Deacon
2021-08-09 12:49     ` Will Deacon
2021-08-09 13:40     ` Robin Murphy
2021-08-09 13:40       ` Robin Murphy
2021-08-09 13:40       ` Robin Murphy

Reply instructions:

You may reply publicly to this message via plain-text email
using any one of the following methods:

* Save the following mbox file, import it into your mail client,
  and reply-to-all from there: mbox

  Avoid top-posting and favor interleaved quoting:
  https://en.wikipedia.org/wiki/Posting_style#Interleaved_style

* Reply using the --to, --cc, and --in-reply-to
  switches of git-send-email(1):

  git send-email \
    --in-reply-to=fc13c3abc2939825f20ba4733ac8abb90b58528f.1628094601.git.robin.murphy@arm.com \
    --to=robin.murphy@arm.com \
    --cc=baolu.lu@linux.intel.com \
    --cc=chenxiang66@hisilicon.com \
    --cc=dianders@chromium.org \
    --cc=iommu@lists.linux-foundation.org \
    --cc=john.garry@huawei.com \
    --cc=joro@8bytes.org \
    --cc=linux-arm-kernel@lists.infradead.org \
    --cc=linux-kernel@vger.kernel.org \
    --cc=m.szyprowski@samsung.com \
    --cc=rajatja@google.com \
    --cc=suravee.suthikulpanit@amd.com \
    --cc=will@kernel.org \
    /path/to/YOUR_REPLY

  https://kernel.org/pub/software/scm/git/docs/git-send-email.html

* If your mail client supports setting the In-Reply-To header
  via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line before the message body.
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.