[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Message-ID: <20240413002522.1101315-3-pasha.tatashin@soleen.com>
Date: Sat, 13 Apr 2024 00:25:13 +0000
From: Pasha Tatashin <pasha.tatashin@...een.com>
To: akpm@...ux-foundation.org,
alim.akhtar@...sung.com,
alyssa@...enzweig.io,
asahi@...ts.linux.dev,
baolu.lu@...ux.intel.com,
bhelgaas@...gle.com,
cgroups@...r.kernel.org,
corbet@....net,
david@...hat.com,
dwmw2@...radead.org,
hannes@...xchg.org,
heiko@...ech.de,
iommu@...ts.linux.dev,
jernej.skrabec@...il.com,
jonathanh@...dia.com,
joro@...tes.org,
krzysztof.kozlowski@...aro.org,
linux-doc@...r.kernel.org,
linux-fsdevel@...r.kernel.org,
linux-kernel@...r.kernel.org,
linux-mm@...ck.org,
linux-rockchip@...ts.infradead.org,
linux-samsung-soc@...r.kernel.org,
linux-sunxi@...ts.linux.dev,
linux-tegra@...r.kernel.org,
lizefan.x@...edance.com,
marcan@...can.st,
mhiramat@...nel.org,
m.szyprowski@...sung.com,
pasha.tatashin@...een.com,
paulmck@...nel.org,
rdunlap@...radead.org,
robin.murphy@....com,
samuel@...lland.org,
suravee.suthikulpanit@....com,
sven@...npeter.dev,
thierry.reding@...il.com,
tj@...nel.org,
tomas.mudrunka@...il.com,
vdumpa@...dia.com,
wens@...e.org,
will@...nel.org,
yu-cheng.yu@...el.com,
rientjes@...gle.com,
bagasdotme@...il.com,
mkoutny@...e.com
Subject: [PATCH v6 02/11] iommu/dma: use iommu_put_pages_list() to releae freelist
Free the IOMMU page tables via iommu_put_pages_list(). The page tables
were allocated via iommu_alloc_* functions in architecture specific
places, but are released in dma-iommu if the freelist is gathered during
map/unmap operations into iommu_iotlb_gather data structure.
Currently, only iommu/intel that does that.
Signed-off-by: Pasha Tatashin <pasha.tatashin@...een.com>
Acked-by: David Rientjes <rientjes@...gle.com>
---
drivers/iommu/dma-iommu.c | 7 ++++---
1 file changed, 4 insertions(+), 3 deletions(-)
diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
index e4cb26f6a943..16a7c4a4f3db 100644
--- a/drivers/iommu/dma-iommu.c
+++ b/drivers/iommu/dma-iommu.c
@@ -32,6 +32,7 @@
#include <trace/events/swiotlb.h>
#include "dma-iommu.h"
+#include "iommu-pages.h"
struct iommu_dma_msi_page {
struct list_head list;
@@ -156,7 +157,7 @@ static void fq_ring_free_locked(struct iommu_dma_cookie *cookie, struct iova_fq
if (fq->entries[idx].counter >= counter)
break;
- put_pages_list(&fq->entries[idx].freelist);
+ iommu_put_pages_list(&fq->entries[idx].freelist);
free_iova_fast(&cookie->iovad,
fq->entries[idx].iova_pfn,
fq->entries[idx].pages);
@@ -254,7 +255,7 @@ static void iommu_dma_free_fq_single(struct iova_fq *fq)
int idx;
fq_ring_for_each(idx, fq)
- put_pages_list(&fq->entries[idx].freelist);
+ iommu_put_pages_list(&fq->entries[idx].freelist);
vfree(fq);
}
@@ -267,7 +268,7 @@ static void iommu_dma_free_fq_percpu(struct iova_fq __percpu *percpu_fq)
struct iova_fq *fq = per_cpu_ptr(percpu_fq, cpu);
fq_ring_for_each(idx, fq)
- put_pages_list(&fq->entries[idx].freelist);
+ iommu_put_pages_list(&fq->entries[idx].freelist);
}
free_percpu(percpu_fq);
--
2.44.0.683.g7961c838ac-goog
Powered by blists - more mailing lists