From: Jason Gunthorpe <jgg@nvidia.com>
To: Nicolin Chen <nicolinc@nvidia.com>
Cc: joro@8bytes.org, bhelgaas@google.com,
suravee.suthikulpanit@amd.com, will@kernel.org,
robin.murphy@arm.com, sven@kernel.org, j@jannau.net,
alyssa@rosenzweig.io, neal@gompa.dev,
robin.clark@oss.qualcomm.com, m.szyprowski@samsung.com,
krzk@kernel.org, alim.akhtar@samsung.com, dwmw2@infradead.org,
baolu.lu@linux.intel.com, kevin.tian@intel.com,
yong.wu@mediatek.com, matthias.bgg@gmail.com,
angelogioacchino.delregno@collabora.com, tjeznach@rivosinc.com,
paul.walmsley@sifive.com, palmer@dabbelt.com,
aou@eecs.berkeley.edu, alex@ghiti.fr, heiko@sntech.de,
schnelle@linux.ibm.com, mjrosato@linux.ibm.com,
gerald.schaefer@linux.ibm.com, orsonzhai@gmail.com,
baolin.wang@linux.alibaba.com, zhang.lyra@gmail.com,
wens@csie.org, jernej.skrabec@gmail.com, samuel@sholland.org,
jean-philippe@linaro.org, rafael@kernel.org, lenb@kernel.org,
yi.l.liu@intel.com, cwabbott0@gmail.com,
quic_pbrahma@quicinc.com, iommu@lists.linux.dev,
linux-kernel@vger.kernel.org, asahi@lists.linux.dev,
linux-arm-kernel@lists.infradead.org,
linux-arm-msm@vger.kernel.org, linux-samsung-soc@vger.kernel.org,
linux-mediatek@lists.infradead.org,
linux-riscv@lists.infradead.org,
linux-rockchip@lists.infradead.org, linux-s390@vger.kernel.org,
linux-sunxi@lists.linux.dev, linux-tegra@vger.kernel.org,
virtualization@lists.linux.dev, linux-acpi@vger.kernel.org,
linux-pci@vger.kernel.org, patches@lists.linux.dev,
vsethi@nvidia.com, helgaas@kernel.org, etzhao1900@gmail.com
Subject: Re: [PATCH v4 5/7] iommu: Add iommu_get_domain_for_dev_locked() helper
Date: Wed, 24 Sep 2025 16:10:55 -0300 [thread overview]
Message-ID: <20250924191055.GJ2617119@nvidia.com> (raw)
In-Reply-To: <c9daeafb9046bed9e915fdafe20fe28a8c427d29.1756682135.git.nicolinc@nvidia.com>
On Sun, Aug 31, 2025 at 04:31:57PM -0700, Nicolin Chen wrote:
> diff --git a/drivers/iommu/dma-iommu.c b/drivers/iommu/dma-iommu.c
> index ea2ef53bd4fef..99680cdb57265 100644
> --- a/drivers/iommu/dma-iommu.c
> +++ b/drivers/iommu/dma-iommu.c
> @@ -2097,7 +2097,7 @@ EXPORT_SYMBOL_GPL(dma_iova_destroy);
>
> void iommu_setup_dma_ops(struct device *dev)
> {
> - struct iommu_domain *domain = iommu_get_domain_for_dev(dev);
> + struct iommu_domain *domain = iommu_get_domain_for_dev_locked(dev);
Lets have another patch to tidy this. This function can only be called on
the default_domain. We can trivally pass it in. In all three cases the
default domain was just attached to the device.
diff --git a/drivers/iommu/iommu.c b/drivers/iommu/iommu.c
index 060ebe330ee163..93e82d5776ff57 100644
--- a/drivers/iommu/iommu.c
+++ b/drivers/iommu/iommu.c
@@ -620,7 +620,7 @@ static int __iommu_probe_device(struct device *dev, struct list_head *group_list
}
if (group->default_domain)
- iommu_setup_dma_ops(dev);
+ iommu_setup_dma_ops(dev, group->default_domain);
mutex_unlock(&group->mutex);
@@ -1908,7 +1908,7 @@ static int bus_iommu_probe(const struct bus_type *bus)
return ret;
}
for_each_group_device(group, gdev)
- iommu_setup_dma_ops(gdev->dev);
+ iommu_setup_dma_ops(gdev->dev, group->default_domain);
mutex_unlock(&group->mutex);
/*
@@ -3104,7 +3104,7 @@ static ssize_t iommu_group_store_type(struct iommu_group *group,
/* Make sure dma_ops is appropriatley set */
for_each_group_device(group, gdev)
- iommu_setup_dma_ops(gdev->dev);
+ iommu_setup_dma_ops(gdev->dev, group->default_domain);
out_unlock:
mutex_unlock(&group->mutex);
> +/* Caller must be a general/external function that isn't an IOMMU callback */
> struct iommu_domain *iommu_get_domain_for_dev(struct device *dev)
Maybe a kdoc?
/**
* iommu_get_domain_for_dev() - Return the DMA API domain pointer
* @dev - Device to query
*
* This function can be called within a driver bound to dev. The returned
* pointer is valid for the lifetime of the bound driver.
*
* It should not be called by drivers with driver_managed_dma = true.
*/
struct iommu_domain *iommu_get_domain_for_dev(struct device *dev)
I really wanted to say this should just always return the
default_domain, but it looks like host1x_client_iommu_detach() is the
only place outside the iommu drivers that would be unhappy with that.
Jason
next prev parent reply other threads:[~2025-09-24 19:11 UTC|newest]
Thread overview: 31+ messages / expand[flat|nested] mbox.gz Atom feed top
2025-08-31 23:31 [PATCH v4 0/7] Disable ATS via iommu during PCI resets Nicolin Chen
2025-08-31 23:31 ` [PATCH v4 1/7] iommu/arm-smmu-v3: Add release_domain to attach prior to release_dev() Nicolin Chen
2025-09-12 9:33 ` Tian, Kevin
2025-09-15 12:35 ` Jason Gunthorpe
2025-09-19 22:47 ` Nicolin Chen
2025-09-23 17:22 ` Jason Gunthorpe
2025-09-23 17:37 ` Nicolin Chen
2025-09-23 17:44 ` Jason Gunthorpe
2025-09-23 19:46 ` Nicolin Chen
2025-08-31 23:31 ` [PATCH v4 2/7] iommu: Lock group->mutex in iommu_deferred_attach() Nicolin Chen
2025-09-12 9:34 ` Tian, Kevin
2025-08-31 23:31 ` [PATCH v4 3/7] iommu: Pass in gdev to __iommu_device_set_domain Nicolin Chen
2025-08-31 23:31 ` [PATCH v4 4/7] iommu: Pass in old domain to attach_dev callback functions Nicolin Chen
2025-09-12 9:35 ` Tian, Kevin
2025-09-19 22:56 ` Nicolin Chen
2025-09-24 18:43 ` Jason Gunthorpe
2025-09-24 19:18 ` Nicolin Chen
2025-09-24 19:22 ` Jason Gunthorpe
2025-08-31 23:31 ` [PATCH v4 5/7] iommu: Add iommu_get_domain_for_dev_locked() helper Nicolin Chen
2025-09-12 9:36 ` Tian, Kevin
2025-09-19 23:14 ` Nicolin Chen
2025-09-24 19:10 ` Jason Gunthorpe [this message]
2025-09-24 19:49 ` Nicolin Chen
2025-09-24 19:52 ` Jason Gunthorpe
2025-09-24 20:02 ` Nicolin Chen
2025-09-24 21:02 ` Jason Gunthorpe
2025-08-31 23:31 ` [PATCH v4 6/7] iommu: Introduce iommu_dev_reset_prepare() and iommu_dev_reset_done() Nicolin Chen
2025-09-12 9:49 ` Tian, Kevin
2025-09-15 12:53 ` Jason Gunthorpe
2025-09-22 19:39 ` Nicolin Chen
2025-08-31 23:31 ` [PATCH v4 7/7] pci: Suspend iommu function prior to resetting a device Nicolin Chen
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=20250924191055.GJ2617119@nvidia.com \
--to=jgg@nvidia.com \
--cc=alex@ghiti.fr \
--cc=alim.akhtar@samsung.com \
--cc=alyssa@rosenzweig.io \
--cc=angelogioacchino.delregno@collabora.com \
--cc=aou@eecs.berkeley.edu \
--cc=asahi@lists.linux.dev \
--cc=baolin.wang@linux.alibaba.com \
--cc=baolu.lu@linux.intel.com \
--cc=bhelgaas@google.com \
--cc=cwabbott0@gmail.com \
--cc=dwmw2@infradead.org \
--cc=etzhao1900@gmail.com \
--cc=gerald.schaefer@linux.ibm.com \
--cc=heiko@sntech.de \
--cc=helgaas@kernel.org \
--cc=iommu@lists.linux.dev \
--cc=j@jannau.net \
--cc=jean-philippe@linaro.org \
--cc=jernej.skrabec@gmail.com \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=krzk@kernel.org \
--cc=lenb@kernel.org \
--cc=linux-acpi@vger.kernel.org \
--cc=linux-arm-kernel@lists.infradead.org \
--cc=linux-arm-msm@vger.kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=linux-mediatek@lists.infradead.org \
--cc=linux-pci@vger.kernel.org \
--cc=linux-riscv@lists.infradead.org \
--cc=linux-rockchip@lists.infradead.org \
--cc=linux-s390@vger.kernel.org \
--cc=linux-samsung-soc@vger.kernel.org \
--cc=linux-sunxi@lists.linux.dev \
--cc=linux-tegra@vger.kernel.org \
--cc=m.szyprowski@samsung.com \
--cc=matthias.bgg@gmail.com \
--cc=mjrosato@linux.ibm.com \
--cc=neal@gompa.dev \
--cc=nicolinc@nvidia.com \
--cc=orsonzhai@gmail.com \
--cc=palmer@dabbelt.com \
--cc=patches@lists.linux.dev \
--cc=paul.walmsley@sifive.com \
--cc=quic_pbrahma@quicinc.com \
--cc=rafael@kernel.org \
--cc=robin.clark@oss.qualcomm.com \
--cc=robin.murphy@arm.com \
--cc=samuel@sholland.org \
--cc=schnelle@linux.ibm.com \
--cc=suravee.suthikulpanit@amd.com \
--cc=sven@kernel.org \
--cc=tjeznach@rivosinc.com \
--cc=virtualization@lists.linux.dev \
--cc=vsethi@nvidia.com \
--cc=wens@csie.org \
--cc=will@kernel.org \
--cc=yi.l.liu@intel.com \
--cc=yong.wu@mediatek.com \
--cc=zhang.lyra@gmail.com \
/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).