From: Leonardo Bras <leobras.c@gmail.com>
To: Michael Ellerman <mpe@ellerman.id.au>,
Benjamin Herrenschmidt <benh@kernel.crashing.org>,
Paul Mackerras <paulus@samba.org>,
Alexey Kardashevskiy <aik@ozlabs.ru>,
Joel Stanley <joel@jms.id.au>,
Christophe Leroy <christophe.leroy@c-s.fr>,
Leonardo Bras <leobras.c@gmail.com>,
Thiago Jung Bauermann <bauerman@linux.ibm.com>,
Ram Pai <linuxram@us.ibm.com>,
Brian King <brking@linux.vnet.ibm.com>
Cc: linuxppc-dev@lists.ozlabs.org, linux-kernel@vger.kernel.org
Subject: [PATCH v4 5/7] powerpc/iommu: Move iommu_table cleaning routine to iommu_table_clean
Date: Thu, 16 Jul 2020 04:16:57 -0300 [thread overview]
Message-ID: <20200716071658.467820-6-leobras.c@gmail.com> (raw)
In-Reply-To: <20200716071658.467820-1-leobras.c@gmail.com>
Move the part of iommu_table_free() that does struct iommu_table cleaning
into iommu_table_clean, so we can invoke it separately.
This new function is useful for cleaning struct iommu_table before
initializing it again with a new DMA window, without having it freed and
allocated again.
Signed-off-by: Leonardo Bras <leobras.c@gmail.com>
---
arch/powerpc/kernel/iommu.c | 30 ++++++++++++++++++------------
1 file changed, 18 insertions(+), 12 deletions(-)
diff --git a/arch/powerpc/kernel/iommu.c b/arch/powerpc/kernel/iommu.c
index 9704f3f76e63..c3242253a4e7 100644
--- a/arch/powerpc/kernel/iommu.c
+++ b/arch/powerpc/kernel/iommu.c
@@ -735,21 +735,10 @@ struct iommu_table *iommu_init_table(struct iommu_table *tbl, int nid,
return tbl;
}
-static void iommu_table_free(struct kref *kref)
+static void iommu_table_clean(struct iommu_table *tbl)
{
unsigned long bitmap_sz;
unsigned int order;
- struct iommu_table *tbl;
-
- tbl = container_of(kref, struct iommu_table, it_kref);
-
- if (tbl->it_ops->free)
- tbl->it_ops->free(tbl);
-
- if (!tbl->it_map) {
- kfree(tbl);
- return;
- }
iommu_table_release_pages(tbl);
@@ -763,6 +752,23 @@ static void iommu_table_free(struct kref *kref)
/* free bitmap */
order = get_order(bitmap_sz);
free_pages((unsigned long) tbl->it_map, order);
+}
+
+static void iommu_table_free(struct kref *kref)
+{
+ struct iommu_table *tbl;
+
+ tbl = container_of(kref, struct iommu_table, it_kref);
+
+ if (tbl->it_ops->free)
+ tbl->it_ops->free(tbl);
+
+ if (!tbl->it_map) {
+ kfree(tbl);
+ return;
+ }
+
+ iommu_table_clean(tbl);
/* free table */
kfree(tbl);
--
2.25.4
next prev parent reply other threads:[~2020-07-16 7:30 UTC|newest]
Thread overview: 20+ messages / expand[flat|nested] mbox.gz Atom feed top
2020-07-16 7:16 [PATCH v4 0/7] Remove default DMA window before creating DDW Leonardo Bras
2020-07-16 7:16 ` [PATCH v4 1/7] powerpc/pseries/iommu: Create defines for operations in ibm, ddw-applicable Leonardo Bras
2020-08-04 21:27 ` David Dai
2020-08-04 21:34 ` David Dai
2020-07-16 7:16 ` [PATCH v4 2/7] powerpc/pseries/iommu: Update call to ibm, query-pe-dma-windows Leonardo Bras
2020-08-04 21:31 ` David Dai
2020-07-16 7:16 ` [PATCH v4 3/7] powerpc/pseries/iommu: Move window-removing part of remove_ddw into remove_dma_window Leonardo Bras
2020-08-04 21:32 ` David Dai
2020-07-16 7:16 ` [PATCH v4 4/7] powerpc/pseries/iommu: Remove default DMA window before creating DDW Leonardo Bras
2020-08-04 21:33 ` David Dai
2020-07-16 7:16 ` Leonardo Bras [this message]
2020-07-21 4:59 ` [PATCH v4 5/7] powerpc/iommu: Move iommu_table cleaning routine to iommu_table_clean Alexey Kardashevskiy
2020-07-21 22:13 ` Leonardo Bras
2020-07-22 0:52 ` Brian King
2020-07-22 23:45 ` Leonardo Bras
2020-07-22 1:28 ` Alexey Kardashevskiy
2020-07-22 23:37 ` Leonardo Bras
2020-07-16 7:16 ` [PATCH v4 6/7] powerpc/pseries/iommu: Make use of DDW even if it does not map the partition Leonardo Bras
2020-07-21 21:39 ` Leonardo Bras
2020-07-16 7:16 ` [PATCH v4 7/7] powerpc/pseries/iommu: Rename "direct window" to "dma window" Leonardo Bras
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=20200716071658.467820-6-leobras.c@gmail.com \
--to=leobras.c@gmail.com \
--cc=aik@ozlabs.ru \
--cc=bauerman@linux.ibm.com \
--cc=benh@kernel.crashing.org \
--cc=brking@linux.vnet.ibm.com \
--cc=christophe.leroy@c-s.fr \
--cc=joel@jms.id.au \
--cc=linux-kernel@vger.kernel.org \
--cc=linuxppc-dev@lists.ozlabs.org \
--cc=linuxram@us.ibm.com \
--cc=mpe@ellerman.id.au \
--cc=paulus@samba.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 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).