From: Christoph Hellwig <hch@lst.de>
To: Petr Tesarik <petrtesarik@huaweicloud.com>
Cc: Stefano Stabellini <sstabellini@kernel.org>,
Russell King <linux@armlinux.org.uk>,
Thomas Bogendoerfer <tsbogend@alpha.franken.de>,
Thomas Gleixner <tglx@linutronix.de>,
Ingo Molnar <mingo@redhat.com>, Borislav Petkov <bp@alien8.de>,
Dave Hansen <dave.hansen@linux.intel.com>,
"maintainer:X86 ARCHITECTURE (32-BIT AND 64-BIT)"
<x86@kernel.org>, "H. Peter Anvin" <hpa@zytor.com>,
Greg Kroah-Hartman <gregkh@linuxfoundation.org>,
"Rafael J. Wysocki" <rafael@kernel.org>,
Juergen Gross <jgross@suse.com>,
Oleksandr Tyshchenko <oleksandr_tyshchenko@epam.com>,
Christoph Hellwig <hch@lst.de>,
Marek Szyprowski <m.szyprowski@samsung.com>,
Robin Murphy <robin.murphy@arm.com>,
Petr Tesarik <petr.tesarik.ext@huawei.com>,
Jonathan Corbet <corbet@lwn.net>,
Andy Shevchenko <andriy.shevchenko@linux.intel.com>,
Hans de Goede <hdegoede@redhat.com>, James Seo <james@equiv.tech>,
James Clark <james.clark@arm.com>,
Kees Cook <keescook@chromium.org>,
"moderated list:XEN HYPERVISOR ARM"
<xen-devel@lists.xenproject.org>,
"moderated list:ARM PORT" <linux-arm-kernel@lists.infradead.org>,
open list <linux-kernel@vger.kernel.org>,
"open list:MIPS" <linux-mips@vger.kernel.org>,
"open list:XEN SWIOTLB SUBSYSTEM" <iommu@lists.linux.dev>,
Roberto Sassu <roberto.sassu@huaweicloud.com>,
Kefeng Wang <wangkefeng.wang@huawei.com>,
petr@tesarici.cz
Subject: Re: [PATCH v4 1/8] swiotlb: make io_tlb_default_mem local to swiotlb.c
Date: Thu, 20 Jul 2023 08:37:44 +0200 [thread overview]
Message-ID: <20230720063744.GA3842@lst.de> (raw)
In-Reply-To: <7f64111986f4f361a2deb4a1a1b6f588e63a851b.1689261692.git.petr.tesarik.ext@huawei.com>
On Thu, Jul 13, 2023 at 05:23:12PM +0200, Petr Tesarik wrote:
> From: Petr Tesarik <petr.tesarik.ext@huawei.com>
>
> SWIOTLB implementation details should not be exposed to the rest of the
> kernel. This will allow to make changes to the implementation without
> modifying non-swiotlb code.
>
> To avoid breaking existing users, provide helper functions for the few
> required fields.
>
> As a bonus, using a helper function to initialize struct device allows to
> get rid of an #ifdef in driver core.
>
> Signed-off-by: Petr Tesarik <petr.tesarik.ext@huawei.com>
> ---
> arch/arm/xen/mm.c | 2 +-
> arch/mips/pci/pci-octeon.c | 2 +-
> arch/x86/kernel/pci-dma.c | 2 +-
> drivers/base/core.c | 4 +---
> drivers/xen/swiotlb-xen.c | 2 +-
> include/linux/swiotlb.h | 25 +++++++++++++++++++++++-
> kernel/dma/swiotlb.c | 39 +++++++++++++++++++++++++++++++++++++-
> 7 files changed, 67 insertions(+), 9 deletions(-)
>
> diff --git a/arch/arm/xen/mm.c b/arch/arm/xen/mm.c
> index 3d826c0b5fee..0f32c14eb786 100644
> --- a/arch/arm/xen/mm.c
> +++ b/arch/arm/xen/mm.c
> @@ -125,7 +125,7 @@ static int __init xen_mm_init(void)
> return 0;
>
> /* we can work with the default swiotlb */
> - if (!io_tlb_default_mem.nslabs) {
> + if (!is_swiotlb_allocated()) {
> rc = swiotlb_init_late(swiotlb_size_or_default(),
> xen_swiotlb_gfp(), NULL);
> if (rc < 0)
I'd much rather move the already initialized check into
swiotlb_init_late, which is a much cleaer interface.
> /* we can work with the default swiotlb */
> - if (!io_tlb_default_mem.nslabs) {
> + if (!is_swiotlb_allocated()) {
> int rc = swiotlb_init_late(swiotlb_size_or_default(),
> GFP_KERNEL, xen_swiotlb_fixup);
> if (rc < 0)
.. and would take care of this one as well.
> +bool is_swiotlb_allocated(void)
> +{
> + return !!io_tlb_default_mem.nslabs;
Nit: no need for the !!, we can rely on the implicit promotion to
bool. But with the suggestion above the need for this helper
should go away anyway.
next prev parent reply other threads:[~2023-07-20 6:44 UTC|newest]
Thread overview: 24+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-07-13 15:23 [PATCH v4 0/8] Allow dynamic allocation of software IO TLB bounce buffers Petr Tesarik
2023-07-13 15:23 ` [PATCH v4 1/8] swiotlb: make io_tlb_default_mem local to swiotlb.c Petr Tesarik
2023-07-17 6:06 ` Philippe Mathieu-Daudé
2023-07-17 10:17 ` Petr Tesařík
2023-07-20 6:37 ` Christoph Hellwig [this message]
2023-07-20 7:54 ` Petr Tesařík
2023-07-13 15:23 ` [PATCH v4 2/8] swiotlb: add documentation and rename swiotlb_do_find_slots() Petr Tesarik
2023-07-20 6:38 ` Christoph Hellwig
2023-07-20 7:56 ` Petr Tesařík
2023-07-20 8:01 ` Christoph Hellwig
2023-07-20 8:14 ` Petr Tesařík
2023-07-13 15:23 ` [PATCH v4 3/8] swiotlb: separate memory pool data from other allocator data Petr Tesarik
2023-07-13 17:53 ` Petr Tesařík
2023-07-13 15:23 ` [PATCH v4 4/8] swiotlb: add a flag whether a SWIOTLB is allowed to grow Petr Tesarik
2023-07-13 15:23 ` [PATCH v4 5/8] swiotlb: if swiotlb is full, fall back to a transient memory pool Petr Tesarik
2023-07-13 15:23 ` [PATCH v4 6/8] swiotlb: determine potential physical address limit Petr Tesarik
2023-07-13 15:23 ` [PATCH v4 7/8] swiotlb: allocate a new memory pool when existing pools are full Petr Tesarik
2023-07-13 15:23 ` [PATCH v4 8/8] swiotlb: search the software IO TLB only if a device makes use of it Petr Tesarik
2023-07-20 6:47 ` Christoph Hellwig
2023-07-20 8:02 ` Petr Tesařík
2023-07-20 8:22 ` Christoph Hellwig
2023-07-20 6:52 ` [PATCH v4 0/8] Allow dynamic allocation of software IO TLB bounce buffers Christoph Hellwig
2023-07-20 8:13 ` Petr Tesařík
2023-07-20 8:23 ` Christoph Hellwig
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=20230720063744.GA3842@lst.de \
--to=hch@lst.de \
--cc=andriy.shevchenko@linux.intel.com \
--cc=bp@alien8.de \
--cc=corbet@lwn.net \
--cc=dave.hansen@linux.intel.com \
--cc=gregkh@linuxfoundation.org \
--cc=hdegoede@redhat.com \
--cc=hpa@zytor.com \
--cc=iommu@lists.linux.dev \
--cc=james.clark@arm.com \
--cc=james@equiv.tech \
--cc=jgross@suse.com \
--cc=keescook@chromium.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mips@vger.kernel.org \
--cc=linux@armlinux.org.uk \
--cc=m.szyprowski@samsung.com \
--cc=mingo@redhat.com \
--cc=oleksandr_tyshchenko@epam.com \
--cc=petr.tesarik.ext@huawei.com \
--cc=petr@tesarici.cz \
--cc=petrtesarik@huaweicloud.com \
--cc=rafael@kernel.org \
--cc=roberto.sassu@huaweicloud.com \
--cc=robin.murphy@arm.com \
--cc=sstabellini@kernel.org \
--cc=tglx@linutronix.de \
--cc=tsbogend@alpha.franken.de \
--cc=wangkefeng.wang@huawei.com \
--cc=x86@kernel.org \
--cc=xen-devel@lists.xenproject.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