From: Baolu Lu <baolu.lu@linux.intel.com>
To: Dmitry Baryshkov <dmitry.baryshkov@linaro.org>
Cc: baolu.lu@linux.intel.com, Joerg Roedel <joro@8bytes.org>,
Will Deacon <will@kernel.org>,
Robin Murphy <robin.murphy@arm.com>,
Jason Gunthorpe <jgg@ziepe.ca>, Kevin Tian <kevin.tian@intel.com>,
Yi Liu <yi.l.liu@intel.com>, David Airlie <airlied@gmail.com>,
Daniel Vetter <daniel@ffwll.ch>, Kalle Valo <kvalo@kernel.org>,
Bjorn Andersson <andersson@kernel.org>,
Mathieu Poirier <mathieu.poirier@linaro.org>,
Alex Williamson <alex.williamson@redhat.com>,
mst@redhat.com, Jason Wang <jasowang@redhat.com>,
Thierry Reding <thierry.reding@gmail.com>,
Jonathan Hunter <jonathanh@nvidia.com>,
Mikko Perttunen <mperttunen@nvidia.com>,
iommu@lists.linux.dev, dri-devel@lists.freedesktop.org,
linux-kernel@vger.kernel.org
Subject: Re: [PATCH 06/20] drm/msm: Use iommu_paging_domain_alloc()
Date: Fri, 31 May 2024 09:57:54 +0800 [thread overview]
Message-ID: <dda59cd5-b227-4f42-a7f2-b9fe03e1b020@linux.intel.com> (raw)
In-Reply-To: <CAA8EJppZU5yy4g85oMWzV_O9Qo91-Cr6d+W9Rz+K+mS6tfU8kw@mail.gmail.com>
On 5/30/24 3:58 PM, Dmitry Baryshkov wrote:
> On Thu, 30 May 2024 at 04:59, Baolu Lu<baolu.lu@linux.intel.com> wrote:
>> On 5/29/24 4:21 PM, Dmitry Baryshkov wrote:
>>> On Wed, May 29, 2024 at 01:32:36PM +0800, Lu Baolu wrote:
>>>> The domain allocated in msm_iommu_new() is for the @dev. Replace
>>>> iommu_domain_alloc() with iommu_paging_domain_alloc() to make it explicit.
>>>>
>>>> Update msm_iommu_new() to always return ERR_PTR in failure cases instead
>>>> of NULL.
>>> Please don't mix unrelated changes, because ...
>>>
>>>> Signed-off-by: Lu Baolu<baolu.lu@linux.intel.com>
>>>> ---
>>>> drivers/gpu/drm/msm/msm_iommu.c | 8 ++++----
>>>> 1 file changed, 4 insertions(+), 4 deletions(-)
>>>>
>>>> diff --git a/drivers/gpu/drm/msm/msm_iommu.c b/drivers/gpu/drm/msm/msm_iommu.c
>>>> index d5512037c38b..f7e28d4b5f62 100644
>>>> --- a/drivers/gpu/drm/msm/msm_iommu.c
>>>> +++ b/drivers/gpu/drm/msm/msm_iommu.c
>>>> @@ -407,9 +407,9 @@ struct msm_mmu *msm_iommu_new(struct device *dev, unsigned long quirks)
>>>> struct msm_iommu *iommu;
>>>> int ret;
>>>>
>>>> - domain = iommu_domain_alloc(dev->bus);
>>>> - if (!domain)
>>>> - return NULL;
>>>> + domain = iommu_paging_domain_alloc(dev);
>>>> + if (IS_ERR(domain))
>>>> + return ERR_CAST(domain);
>>>>
>>>> iommu_set_pgtable_quirks(domain, quirks);
>>>>
>>>> @@ -441,7 +441,7 @@ struct msm_mmu *msm_iommu_gpu_new(struct device *dev, struct msm_gpu *gpu, unsig
>>>> struct msm_mmu *mmu;
>>>>
>>>> mmu = msm_iommu_new(dev, quirks);
>>>> - if (IS_ERR_OR_NULL(mmu))
>>>> + if (IS_ERR(mmu))
>>>> return mmu;
>>> NAK, not having an IOMMU is a poor but legit usecase for some of devices
>>> which don't have IOMMU support yet (for example because of the buggy
>>> implementation for which we were not able to get all the hooks in).
>>>
>>> Please don't break compatibility for existing platforms.
>> Sure. I will remove this line of change. Though I have no idea in which
>> case msm_iommu_new() could return NULL after this patch.
> So, even without this chunk you are going to break the no-IOMMU case.
> Please don't. This will result in a regression report and a revert.
>
> Instead please provide a way for the existing drivers to continue
> working. For example, something like:
>
> if (IS_ERR(mmu) && ERR_PTR(mmu) == -ENODEV))
> return NULL;
Oh I see. msm_iommu_new() returning NULL indicates a no-IOMMU case,
right? So perhaps we can make it explicit like below?
if (!device_iommu_mapped(dev))
return NULL;
domain = iommu_paging_domain_alloc(dev);
if (IS_ERR(domain))
return ERR_CAST(domain);
Best regards,
baolu
next prev parent reply other threads:[~2024-05-31 2:00 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2024-05-29 5:32 [PATCH 00/20] iommu: Refactoring domain allocation interface Lu Baolu
2024-05-29 5:32 ` [PATCH 01/20] iommu: Add iommu_user_domain_alloc() interface Lu Baolu
2024-05-29 5:32 ` [PATCH 02/20] iommufd: Use iommu_user_domain_alloc() Lu Baolu
2024-05-29 5:32 ` [PATCH 03/20] vfio/type1: Use iommu_paging_domain_alloc() Lu Baolu
2024-05-29 5:32 ` [PATCH 04/20] vhost-vdpa: Use iommu_user_domain_alloc() Lu Baolu
2024-05-29 5:32 ` [PATCH 05/20] iommu: Add iommu_paging_domain_alloc() interface Lu Baolu
2024-05-29 9:04 ` Yi Liu
2024-05-30 1:59 ` Baolu Lu
2024-05-30 3:09 ` Baolu Lu
2024-05-29 5:32 ` [PATCH 06/20] drm/msm: Use iommu_paging_domain_alloc() Lu Baolu
2024-05-29 8:21 ` Dmitry Baryshkov
2024-05-30 1:57 ` Baolu Lu
2024-05-30 7:58 ` Dmitry Baryshkov
2024-05-31 1:57 ` Baolu Lu [this message]
2024-05-31 8:30 ` Dmitry Baryshkov
2024-05-29 5:32 ` [PATCH 07/20] drm/nouveau/tegra: " Lu Baolu
2024-05-29 5:32 ` [PATCH 08/20] gpu: host1x: " Lu Baolu
2024-05-29 5:32 ` [PATCH 09/20] media: nvidia: tegra: " Lu Baolu
2024-05-29 5:32 ` [PATCH 10/20] media: venus: firmware: " Lu Baolu
2024-05-29 5:32 ` [PATCH 11/20] ath10k: " Lu Baolu
2024-05-29 5:32 ` [PATCH 12/20] wifi: ath11k: " Lu Baolu
2024-05-29 5:32 ` [PATCH 13/20] remoteproc: " Lu Baolu
2024-05-29 5:32 ` [PATCH 14/20] soc/fsl/qbman: " Lu Baolu
2024-05-29 5:32 ` [PATCH 15/20] iommu/vt-d: Add helper to allocate paging domain Lu Baolu
2024-05-29 5:32 ` [PATCH 16/20] iommu/vt-d: Add domain_alloc_paging support Lu Baolu
2024-05-29 5:32 ` [PATCH 17/20] iommu/vt-d: Simplify compatibility check for identity domain Lu Baolu
2024-05-29 5:32 ` [PATCH 18/20] iommu/vt-d: Enhance compatibility check for paging domain attach Lu Baolu
2024-05-29 5:32 ` [PATCH 19/20] iommu/vt-d: Remove domain_update_iommu_cap() Lu Baolu
2024-05-29 5:32 ` [PATCH 20/20] iommu/vt-d: Remove domain_update_iommu_superpage() Lu Baolu
2024-05-29 9:03 ` [PATCH 00/20] iommu: Refactoring domain allocation interface Yi Liu
2024-05-29 12:02 ` Baolu Lu
2024-05-31 3:16 ` Yi Liu
2024-05-31 6:00 ` Baolu Lu
2024-05-31 6:24 ` Yi Liu
2024-06-03 13:35 ` Jason Gunthorpe
2024-06-04 1:02 ` Baolu Lu
2024-05-30 17:59 ` Robin Murphy
2024-05-31 2:52 ` Baolu Lu
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=dda59cd5-b227-4f42-a7f2-b9fe03e1b020@linux.intel.com \
--to=baolu.lu@linux.intel.com \
--cc=airlied@gmail.com \
--cc=alex.williamson@redhat.com \
--cc=andersson@kernel.org \
--cc=daniel@ffwll.ch \
--cc=dmitry.baryshkov@linaro.org \
--cc=dri-devel@lists.freedesktop.org \
--cc=iommu@lists.linux.dev \
--cc=jasowang@redhat.com \
--cc=jgg@ziepe.ca \
--cc=jonathanh@nvidia.com \
--cc=joro@8bytes.org \
--cc=kevin.tian@intel.com \
--cc=kvalo@kernel.org \
--cc=linux-kernel@vger.kernel.org \
--cc=mathieu.poirier@linaro.org \
--cc=mperttunen@nvidia.com \
--cc=mst@redhat.com \
--cc=robin.murphy@arm.com \
--cc=thierry.reding@gmail.com \
--cc=will@kernel.org \
--cc=yi.l.liu@intel.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